In a small bowl, warm the milk to 110°F (43°C). Stir in the yeast and 1 tablespoon of the sugar. Let it sit for about 5 minutes until the mixture becomes frothy.
In a large mixing bowl, combine 3 ½ cups flour, remaining sugar, and salt. Add the yeast mixture, eggs, and softened butter. Knead the dough by hand or using a stand mixer with a dough hook for 6-8 minutes, until smooth and elastic. The dough should be soft but not sticky—add a little more flour if necessary.
Place the dough in a greased bowl, cover with a clean towel, and let it rise in a warm place for 1-1 ½ hours, or until doubled in size.
In a small bowl, mix the softened butter, brown sugar, cinnamon, and vanilla extract until a smooth paste forms.
Once the dough has risen, punch it down and roll it out on a floured surface into a large rectangle, about 16x12 inches.
Spread the cinnamon-sugar filling evenly over the dough, leaving a small border around the edges. Starting from the longer side, tightly roll the dough into a log. Pinch the seam to seal. Slice the dough log into 12 equal pieces using a sharp knife or dental floss. Place the rolls into a greased 9x13-inch baking dish.
In a small saucepan, melt the butter over medium heat. Stir in the brown sugar, heavy cream, and vanilla extract. Let it simmer for 1-2 minutes until the sugar dissolves.
Pour the gooey glaze evenly over the rolls in the baking dish. Cover the rolls loosely with plastic wrap and let them rise in a warm place for another 30-45 minutes, or until puffy.
Preheat your oven to 350°F (175°C).
Bake the cinnamon rolls for 25-30 minutes, or until golden brown and cooked through. They should be slightly soft in the center for that gooey texture.
While the rolls are baking, beat the cream cheese, butter, powdered sugar, and vanilla extract together in a mixing bowl until smooth. Add milk as needed to reach a spreadable consistency.
Once the rolls are out of the oven, spread the cream cheese icing generously over the warm rolls. Let the glaze melt into the rolls for maximum gooeyness.