Melt the butter in a medium saucepan and stir in the milk.
In a large bowl whisk together the warm water, yeast, and sugar. Then whisk in the egg plus egg yolks. Add the salt, 2 cups of the flour, and the butter / milk mixture. Stir with a sturdy spatula until combined.
Add the last 2 cups of flour and work it in with your hands, kneading the dough in the bowl for around 8 minutes, only adding more flour if the dough seems too sticky or wet. It should be soft, pliable, and shiny from the butter in the dough.
Shape the dough into a ball and place it into a large oiled bowl. Cover it with plastic wrap and let it rise in a warm place for 1 1/2 hours or until it doubles in size.
Line a 9 X 13 baking dish with parchment paper. When the dough has doubled in size lay it on the prepared work surface and roll it out to about 16 X 12, with the SHORTEST side closest to you.
Make the filling by mixing together the butter, brown sugar, cinnamon, and salt. It will be clumpy. Sprinkle the filling all over the dough, going all the way to the outside edges. Start rolling the dough away from you and cut into 6 equal pieces. Lay the pieces in the prepared baking dish, cover with plastic wrap, and let them rise for another 11/2 hours.
Pre-heat the oven to 350°F.
Bake the risen rolls for 25-30 minutes. They will be golden.
While the buns bake, make the frosting. Beat together the cream cheese and powdered sugar. Add in the milk or cream, vanilla and almond extracts, and the pinch of salt. Then add in the light corn syrup. Beat on high until smooth.
Spread the frosting generously over the hot cinnamon buns.