In a large bowl (or stand mixer fitted with dough hook), combine flour and sugar. Sprinkle yeast over the mixture and let sit for 5 minutes until slightly foamy.
Add warm milk, eggs, and melted butter to the flour mixture. Mix on low speed until combined, then increase to medium-high and knead for 6-8 minutes until dough is smooth and elastic. It should pull away from the sides of the bowl. If it sticks too much, add up to 2 more tablespoons of flour.
Place dough in a greased bowl, cover with plastic wrap or a damp towel, and let rise at room temperature for about 1 hour until doubled in size (7-8 hours works fine if you put it in the fridge).
Punch down the dough and roll it out on a floured surface into an 18x26 inch rectangle. Spread softened butter evenly over the entire surface.
Combine brown sugar and cinnamon, then sprinkle uniformly over the buttered dough.
Starting from one long edge, tightly roll up the dough into a log (like a jelly roll). Pinch seam to seal.
Cut into 12 equal pieces using dental floss or a sharp knife. Place each piece in a greased baking dish so they're touching—this helps them rise together and makes for softer rolls.
Let the rolls rest 30 minutes, then bake at 350°F (175°C) for 28-32 minutes until golden brown on top. Internal temperature should reach about 190°F.
If you're giving them as gifts: let cool completely for 15 minutes, then freeze uncovered for 4 hours or overnight. Once frozen solid, wrap tightly in plastic and foil (or place in a gift box). When ready to give, bring rolls to room temperature, then frost just before handing over.
For the frosting: whisk all ingredients together until smooth. Add more milk if too thick—it should be pourable but not runny. If you're decorating ahead of time and want to keep it fresh longer, store frosted rolls in an airtight container at room temperature for up to 3 days.