In a large mixing bowl, combine 2 cups of the flour, sugar, salt, and yeast. Stir everything together until well mixed.
In a separate microwave-safe bowl, warm the milk and butter together, heating them for around 30 seconds until the butter has mostly melted. Ensure the mixture is warm but not overly hot to avoid harming the yeast. If it feels too hot, allow it to cool slightly before proceeding. Pour the warmed milk and butter mixture into the dry ingredients.
Crack the egg into the bowl and begin mixing. Using a stand mixer, start on a low speed and gradually increase the speed to high, beating the mixture for roughly 2 minutes until fully incorporated.
Scrape down the sides of the bowl and add another cup of flour, mixing until combined. Gradually incorporate the remaining flour, adding a little at a time, until the dough starts to come together, pulling away from the bowl and forming a soft ball.
Turn the dough onto a floured surface and knead by hand for around 10 minutes. The dough should become smooth and elastic, with the ability to stretch without breaking, indicating the gluten has developed properly. Once kneaded, place the dough in a lightly oiled bowl, cover it with a cloth, and let it rise in a warm spot for about 1 hour or until it doubles in size.
While the dough rises, prepare the cinnamon filling. In a small bowl, combine the brown sugar, cinnamon, and a pinch of salt. Stir together thoroughly and set aside.
After the dough has risen, roll it out on a floured surface into a rectangle measuring roughly 18 x 12 inches. Spread the softened butter evenly across the entire surface of the dough, making sure to cover the edges. Sprinkle the cinnamon-sugar mixture generously over the butter, pressing it gently to adhere.
Starting from the long edge closest to you, tightly roll the dough away, creating a log. Pinch the seam to seal the roll. Using dental floss or a sharp knife, slice the dough into 12 even rolls. Place the rolls into a parchment-lined 9 x 13-inch baking pan. Cover loosely with a dish towel and allow the rolls to rise for another hour until they have puffed up and doubled in size.
Preheat the oven to 350°F (175°C). Once the rolls have risen, bake them for about 30 minutes or until the tops are golden and the centers are cooked through. Remove from the oven and let them cool slightly in the pan.
While the cinnamon rolls cool, prepare the cream cheese frosting. In a stand mixer, combine the softened cream cheese, softened butter, powdered sugar, milk, vanilla extract, and a pinch of salt. Start beating on low speed and gradually increase to high until the frosting becomes light, fluffy, and smooth.
Generously spread the frosting over the warm rolls. Serve and enjoy the gooey, sweet rolls fresh from the oven!