Make the dough. Heat the milk in a small microwave-safe bowl for 45 seconds to 1 minute, until it reaches 115°F and is about the temperature of warm bath water.
Pour the warm milk into the bowl of a stand mixer fitted with the paddle attachment, then sprinkle the yeast over the milk. If you are using active dry yeast, add the sugar at this stage and leave the mixture for about 5 minutes, until foamy. If the sugar has not already been added, add it now. Add the melted butter, egg, and egg yolk, then mix on medium speed for 30 seconds, until combined. You can also mix these ingredients with a wooden spoon. Remove the mixer bowl and stir in the flour and salt with a wooden spoon until a dough starts to form.
Knead the dough. Replace the paddle with the dough hook and return the bowl to the mixer. Knead on medium speed for 8 to 10 minutes, until the dough is soft, cohesive, and slightly sticky. If the dough is sticking to the bottom of the mixer, add another 1 to 3 tablespoons bread flour, adding 1 tablespoon at a time. Alternatively, knead by hand for 8 to 10 minutes on a well-floured work surface. While the dough is being kneaded, warm a clean dish towel in the dryer.
Lightly coat a large bowl with olive oil and place the dough inside. Cover the bowl with plastic wrap and the warm towel. Leave the dough to rise until doubled in size, about 1 to 1½ hours. The exact time can vary with the temperature, humidity, and season. To check the rise, press a finger about an inch into the dough; the indentation should not immediately spring back.
Generously flour your work surface. Turn out the risen dough and roll it into a 10 × 14-inch rectangle.
Add the filling. Spread the softened butter across the dough, leaving a ¼-inch border along the far short edge. Combine the brown sugar and cinnamon in a small bowl. Sprinkle the mixture evenly over the butter, then gently rub it into the butter with your hands.
Beginning at the short edge without the ¼-inch margin, roll the dough up very tightly. Pinch the far edge lightly to seal the log, then position it seam-side down. Trim ½ inch from each end, since those sections will have less filling; discard them or bake them separately. Gently push inward from both ends of the log to compact it slightly if it stretched during rolling.
Cut the dough into nine 1-inch slices using unflavored dental floss or a serrated knife.
Line a 9x9-inch or 11x7-inch pan with parchment paper. Arrange the rolls in the pan, then cover with plastic wrap and a towel. Leave them to rise for another 45 minutes to 1 hour, until doubled in size, visibly puffy, and touching one another.
While the rolls complete their second rise, preheat the oven to 350°F.
Bake. Remove the towel and plastic wrap. Bake the rolls for 20 to 25 minutes, until the edges are golden brown. Avoid baking them longer than necessary so the centers remain soft. Let them cool for 10 minutes.
Make the cream cheese frosting. Add the cream cheese, powdered sugar, butter, and vanilla to the bowl of a stand mixer fitted with the whisk attachment. Beat on low speed for 30 seconds, then increase to medium-high and continue beating for 1 to 2 minutes, until the frosting is smooth and fluffy. The frosting can also be whisked by hand.
Spread the frosting over the warm cinnamon rolls and serve.
To store: Cover the entire pan with plastic wrap and foil, or transfer individual cinnamon rolls to airtight containers or silicone bags. Refrigerate for up to 5 days. Reheat individual rolls in the microwave in 15-second intervals until warm.