Whisk together flour, yeast, sugar, and salt in a large bowl.
Heat butter and milk in a small saucepan until butter has just melted. Remove from heat to cool slightly.
Whisk together warm water and eggs in a medium bowl. Add warm milk and butter mixture and whisk until combined. Pour over flour mixture and stir with a rubber spatula or wooden spoon until no dry flour remains and you have a sticky, shaggy dough. Cover bowl tightly with a lid or plastic wrap and let stand in a warm place 2 to 4 hours until dough has doubled in size. Or tightly cover and chill for 12 to 24 hours to rise slowly in the refrigerator. (When chilling overnight at this point, I typically give the dough a head start at room temperature before refrigerating. Just enough to let it begin to bubble and rise, 30-60 minutes depending on how warm the kitchen is.)
Line a rimmed baking sheet with parchment paper and set aside.
Place brown sugar and cinnamon in a medium bowl and combine with a fork or spoon.
Turn risen dough out onto a well floured work surface and pat into a loose rectangle with lightly floured hands. With a floured rolling pin, roll dough into a 12x16-inch rectangle.
Spread soft butter evenly over dough and sprinkle with brown sugar cinnamon mixture in an even layer. Starting at the long end, carefully roll the rectangle into a tight spiral (dough will be soft and sticky - use a bench scraper as necessary to separate any areas that are sticking to the work surface. I promise the rolls will be worth your effort!). Cut into 12 equal slices, using dental floss or a serrated knife, and place on prepared baking sheet, making 4 rows of 3 cinnamon rolls each. For overnight cinnamon rolls, cover well with plastic wrap and refrigerate. Before baking, remove from refrigerator and let rise 1 to 2 hours, until rolls are puffy and light to the touch. OR to bake the same day, cover loosely with a clean kitchen towel and let rise until rolls are puffy and light to the touch, about 1 hour.
When ready to bake, preheat oven to 375˚F.
Bake 20-25 minutes or until tops are golden brown and rolls are cooked through in the center.
Meanwhile, make the frosting. In a large bowl with a handheld mixer or stand mixer fitted with the paddle or whisk attachment, beat the softened cream cheese and butter, powdered sugar, vanilla and salt until fluffy, 2-3 minutes.
Spread frosting generously over warm rolls and serve.
Video
Notes
To substitute active dry yeast for instant yeast, increase the amount to 2 1/4 teaspoons. In step 3 of the recipe, whisk a teaspoon of sugar into the warm water and sprinkle yeast over the top. Let stand 5-10 minutes until yeast is foamy. Whisk in egg and slightly cooled butter and milk mixture. Add this yeast mixture to dry ingredients and proceed with recipe.
If your room temperature isn't warm enough for the dough to rise, use this tip from Cooks Illustrated magazine to create a proofing oven: place the dough in the covered bowl on the middle shelf of your oven and a loaf or cake pan filled with 3 cups of boiling water on the bottom shelf. Close the oven door and you've created a great atmosphere for the dough to rise.