In a large mixing bowl, combine the warm water and active dry yeast. Let it sit for about 5-10 minutes until it becomes frothy.
Stir in the granulated sugar, salt, buttermilk, egg, and canola oil until well combined.
Gradually add 4 1/2 cups of all-purpose flour to the wet mixture, stirring until a soft dough forms.
If the dough is too sticky, add additional flour, a little at a time, until it comes together and pulls away from the sides of the bowl.
Transfer the dough to a lightly floured surface and knead for about 5-7 minutes until it is smooth and elastic.
Place the kneaded dough in a greased bowl, cover it with plastic wrap or a kitchen towel, and let it rise in a warm, draft-free area until it doubles in size, about 1-2 hours.
While the dough rises, make the filling by combining the softened butter, light brown sugar, ground cinnamon, and cornstarch in a mixing bowl. Mix until well combined and set aside.
Once the dough has risen, punch it down and transfer it to a floured surface. Roll it out into a large rectangle, about 16x24 inches in size.
Spread the prepared filling evenly over the rolled-out dough, leaving a small border around the edges.
Starting from one long edge, tightly roll the dough into a log. Cut the roll into 12 equal pieces using a sharp knife or a string for a clean cut.
Place the cinnamon rolls in a greased baking dish, cover them, and let them rise again for about 30-45 minutes until they puff up.
Preheat your oven to 350°F (175°C). Bake the cinnamon rolls for 20-25 minutes until they are golden brown and cooked through.
While the rolls are baking, prepare the frosting by beating together the cream cheese, softened butter, vanilla extract, corn syrup, lemon juice, and powdered sugar until smooth and creamy.
Once the rolls are out of the oven, allow them to cool for about 10 minutes before generously spreading the cream cheese frosting over the warm rolls.
Serve warm and enjoy every gooey bite!