In the bowl of a stand mixer, combine milk, yeast and granulated sugar; let it stand for 10 minutes until foamy and bubbly.
If your kitchen is cold, turn the oven on at 350ºF for 2 minutes to warm up; turn it off. This will be the draft-free area for the dough to rise.
In a large bowl, whisk together flour and salt; set aside.
In a small bowl, beat eggs. Add melted butter and vanilla; stir to combine and set aside.
Add egg mixture and then flour mixture to the yeast. Insert the dough hook and on speed 3, process until it forms a ball around the attachment, about 3-4 minutes.
Transfer the dough to a lightly floured work surface and form a ball by pulling it under.
Transfer the dough into a large bowl and cover with a damp towel.
Transfer to the oven (with the heat off) and let it rise for 1 hour.
Grease a 9 x 13-inch glass baking dish with cooking spray (butter flavored preferably); set aside.
Remove from its draft-free spot and punch the air out. Place the dough on a lightly floured work surface.
Roll the dough into a 15 x 23-inch rectangle.
To make the filling...In a small bowl, combine brown sugar, butter and cinnamon; stir until well-blended. Add walnuts and stir to combine. Add the filling to the dough and spread it out evenly, leaving about 1-inch from the edge of the dough.
Roll the longer side of the dough tightly to the other side; cut the ends to make it even.
Using a bench scraper, cut the dough into 12 even pieces.
Transfer them to the prepared baking dish and cover with a towel. Let it proof for 30 minutes.
Remove the top rack and preheat oven to 350ºF.
Transfer the cinnamon buns into the preheated oven and bake for 20-25 minutes.
While the cinnamon buns are baking, make the icing...In a small bowl, combine all the frosting ingredients; stir until well mixed and set aside. Remove the buns from the heat and place a large baking sheet lined with a silicone mat upside down over the baking dish. Carefully but quickly invert the baking dish (instead of being at the bottom, all the sugar mixture will be on the top).
Spread half of the frosting mixture on the buns. Let it sit for 10 minutes before spreading on the remaining frosting.