In a small saucepan, warm the milk to 105°F–115°F, then remove it from the heat.
In a large mixing bowl, whisk together the all-purpose flour, granulated sugar, kosher salt, and instant yeast.
Add the lightly beaten egg to the warm milk and whisk until combined. Pour the milk mixture into the dry ingredients, then add the softened butter. Stir until a soft dough forms. If the dough feels too dry, add 1–2 tablespoons of warm water as needed.
Transfer the dough to a lightly floured surface and knead for about 5 minutes, until smooth and elastic.
Place the dough in a lightly greased bowl, cover with a clean kitchen towel, and let it rise in a warm place for about 1 hour, or until doubled in size.
In a small bowl, mix together the softened butter, packed brown sugar, and ground cinnamon until combined.
Punch down the dough and roll it into a rectangle about ¼ inch thick.
Spread the cinnamon filling evenly over the dough, leaving a small border around the edges.
Starting from one of the long sides, roll the dough tightly into a log and pinch the seam to seal.
Cut the log into 9 equal-sized rolls and place them in a greased 7x7-inch baking pan, leaving a little space between each roll.
Cover the pan with a kitchen towel and let the rolls rise for another 30 minutes, or until slightly puffed.
Preheat the oven to 375°F (190°C).
Bake the cinnamon rolls for 15-20 minutes, or until golden brown.
While the rolls are baking, whisk together the powdered sugar, softened cream cheese, and vanilla extract until smooth.
Remove the cinnamon rolls from the oven and let them cool for a few minutes before drizzling the glaze over the warm rolls.