In the bowl of a stand mixer fitted with the whisk attachment, combine 2 cups of the bread flour, sugar, yeast, and salt on low speed. If you don't have a stand mixer, you can mix the dough by hand using a large bowl, whisk, and wooden spoon, then knead by hand.
Combine the milk and butter in a microwave-safe bowl and heat for about 45 seconds, until the butter is mostly melted and the milk is pleasantly warm, but not hot or steaming.
Pour the warm milk mixture into the flour mixture and add the egg yolks one at a time. Mix on low until combined, then increase to a higher speed and beat for 2 minutes. Don't worry if it looks more like a thick batter at this point, that's the texture we're looking for.
Switch to a dough hook and add 1 ½ cups of bread flour. Knead on low so the flour doesn't fly everywhere and continue until incorporated, scraping down the sides of the bowl as needed. Add the remaining flour and continue kneading until the dough begins to pull away from the bowl and gather around the hook.
Increase to medium-low speed and knead for about 10 minutes. The dough should be smooth, supple, and slightly tacky. To test it, gently stretch a small piece between your fingers. If it stretches thin enough to see light through without tearing, it's ready.
Place the dough in a lightly greased bowl and cover with plastic wrap or a clean kitchen towel. Let it rise in a warm place for about 1 hour, or until it has doubled in size.
While your dough is resting, you can make the filling. The do so, stir together the softened butter, brown sugar, cinnamon, and salt in a medium bowl until you have a thick, spreadable paste. Set this aside until the dough has doubled in size.
Turn the risen dough onto a lightly floured surface and roll it into a 12 x 18-inch rectangle. Spread the cinnamon filling generously over the dough, going all the way to the edges.
Cut the dough into approximately 1-inch-wide strips. Roll each strip into a spiral and arrange in a parchment-lined 9 x 13-inch baking dish. Cover and let rise in a warm place for about 1 hour, or until the rolls are beautifully puffy and nearly doubled in size.
Preheat the oven to 350°F (177°C). Pour the heavy cream evenly over the risen rolls, making sure a little finds its way between them. Bake for about 30 minutes, until the tops are golden brown and the centers are baked through. Let cool for about 15 minutes.
While the cinnamon rolls cool off, you can make the cream cheeses frosting. To do so, beat the softened cream cheese, butter, powdered sugar, milk, vanilla bean paste, and salt on low until combined. Increase to medium-high and beat for about 1 minute, until light and fluffy. Add a splash more milk if needed to reach your preferred consistency.
Spread the cream cheese frosting generously over the warm cinnamon rolls, letting a little melt down into all those cinnamon-sugar swirls. Serve while they're still warm and gooey. Enjoy!