Spray a 9 x 13 x 2-inch baking pan with pan spray. Set aside.
Dough
Add the milk and butter to a small saucepan and heat over medium-low heat, stirring until the butter has melted. Remove from the heat and set aside to cool until luke-warm in temperature.
In the bowl of a stand mixer, combine 2 ¼ cups of flour, yeast, sugar, and salt. Fit the mixer with the dough hook and add the egg and water. Mix until combined.
While the mixer is on low, slowly add the milk mixture and the remaining cup of flour until fully combined.
Mix for 4-6 minutes, until the dough becomes smooth. Cover the dough and let it rest for 10 minutes.
On a lightly floured surface, roll the dough into a large 9×15-inch square, keeping it about ¼-½-inch thick.
Filling
Combine the cinnamon and brown sugar in a small bowl. Spread the softened butter onto the dough keeping it about a ½-inch away from the edge. Sprinkle the cinnamon sugar evenly over the top of the butter.
Roll up the 15-inch side of the dough tightly into a log, pinching the seams together.
Cut the dough into 9-12 slices, depending on how thick you would like your cinnamon rolls. Place the cinnamon rolls into the prepared pan and cover with a damp cloth. Set them somewhere warm to rise for 30 minutes.
While the cinnamon rolls rise, preheat the oven to 375 degrees Fahrenheit.
After the cinnamon rolls have risen for 30 minutes, bake for 30 minutes or until just golden brown on the top.
Cream Cheese Frosting
Make the cream cheese frosting by adding the cream cheese, butter, and powdered sugar to a large bowl. Beat with a hand mixer until smooth. Add the half & half and vanilla and mix until fully combined.
Spread the cream cheese frosting over the cinnamon rolls while they are still warm.