Whisk the warm milk, 2 Tablespoons of sugar, and the yeast in the bowl of a stand mixer fitted with a dough hook or paddle, then cover and let it stand for 5 to 10 minutes. The surface should look foamy and smell pleasantly yeasty, which tells you the yeast is active.
Mix in the remaining sugar and the softened butter on medium speed until the butter breaks into small pieces, then add about 1 cup of the flour, the eggs, and salt and beat on low for 30 seconds. The mixture will look shaggy and loose at first, which is exactly right at this stage.
Scrape down the bowl, add the remaining flour, and beat on medium speed for about 2 minutes until the dough gathers and starts pulling away from the sides. The dough should stay soft, and if it is truly unmanageable, add extra flour only 1 Tablespoon at a time.
Knead the dough on low in the mixer for 5 full minutes, or turn it out onto a lightly floured surface and knead by hand for 5 full minutes. When it is ready, the dough should feel smooth, slightly tacky, and should slowly bounce back when poked.
Grease a large bowl with oil or butter, turn the dough in the bowl to coat it, then cover and let it rise at room temperature for 1 and 1/2 to 2 hours. By the end of the rise, it should look noticeably expanded and roughly doubled in size.
Grease the bottom and sides of a 9×13-inch baking dish or line it with parchment paper. Having the pan ready now makes shaping the rolls much easier and keeps the process moving.
Deflate the risen dough gently, transfer it to a lightly floured work surface, and roll it into a smooth, even 12×18-inch rectangle with a lightly floured rolling pin. If the dough keeps snapping back, let it rest briefly so the gluten can relax before rolling again.
Spread the softened butter over the dough, combine the brown sugar and cinnamon in a small bowl, and sprinkle that mixture evenly across the surface. An even layer helps every roll bake with a full cinnamon swirl instead of bare spots.
Roll the dough up tightly into an 18-inch log, then cut it into 12 even rolls about 1.5 inches thick with a very sharp knife and place them in the prepared pan. The tighter log holds the filling in place better and gives you cleaner spirals.
Cover the pan and refrigerate it overnight for 8 to 12 hours instead of doing the room-temperature second rise right away. The cold rest slows the yeast, develops flavor, and makes the morning bake much easier.
Take the pan from the refrigerator and let the rolls stand at room temperature for about 1 hour, or until they look puffy, then preheat the oven to 350°F (177°C). They should lose their chill and expand a bit more before baking so the texture stays light.
Bake the rolls for 25 to 28 minutes, rotating the pan halfway through, and loosely tent with foil if the tops brown too quickly. They are ready when the tops are lightly golden brown and the center roll looks set instead of doughy.
Beat the cream cheese until smooth, add the confectioners’ sugar, heavy cream or milk, and vanilla, then beat on low for 30 seconds before increasing to high for 1 minute. The icing should be creamy and spreadable with no lumps.
Spread the icing over the warm rolls and serve them while they are still soft and fragrant. The warmth helps the icing melt slightly into the swirls for that classic bakery-style finish.