In the bowl of an electric mixer dissolve yeast in warm milk. Add flour, sugar, eggs, butter, and salt. Knead until dough is smooth, about 5 minutes. If the dough is too sticky, add a tiny bit of flour but not more. It should be a little sticky. Place in a greased bowl, cover, and let rise for 1 ½ hours.
Meanwhile, prepare the filling. In a bowl, combine ¼ cup butter (half the total butter), brown sugar, and cinnamon.
Place dough on a work surface. Using a rolling pin, roll dough to a 16 x 21-inch rectangle. Spread remaining butter over the surface of the dough. Spread evenly with brown sugar mixture.
Roll up tightly, jelly-roll style. For regular sized buns (not shown here, we made minis and giant ones, instructions below): Slice into about 14 buns, 1 ½ inches wide. Place on a parchment-lined baking sheet, evenly spaced apart. Let rise an additional 30 minutes.
Meanwhile, preheat oven to 350°F.
Prepare the frosting. In the bowl of an electric mixer, combine butter, cream cheese, vanilla, and confectioners’ sugar. Add milk, a tablespoon at a time. Add additional milk if needed to achieve a runny consistency (you want the frosting to be able to drip and melt into the crevices of the bun and not be overly stiff).
Bake buns for 20-22 minutes, until golden. Immediately pour frosting all over the buns, letting it melt into the buns. Serve extra frosting on the side for dipping.
For Giant Cinnamon Buns: Roll into a 16- x 21-inch rectangle. Roll up jelly-roll style on the shorter side. Slice into 5-6 buns, 3 inches wide. Place cut side up on a parchment-lined baking sheet. Squish down a bit. Bake for 25-30 minutes.
For Mini Cinnamon Buns: Roll into a 14- x 30-inch rectangle. Roll up jelly-roll style. Cut into 28 buns, 1 inch wide. Place cut side up on a parchment-lined baking sheet. Bake for 20-22 minutes.