For the dough, heat the milk, oil, and sugar in a dutch oven over medium heat. Cook the mixture until the sugar has dissolved, making sure not to boil the milk. When the sugar has dissolved, turn off the heat and let the mixture cool. When the milk mixture is lukewarm, sprinkle on the dry yeast and let sit for a minute.
Add 4 cups of the flour into the milk and stir to combine. Cover the dutch oven with a kitchen towel and let sit in a relatively warm place for an hour.
When the hour is up, remove the towel and add in the baking powder, soda, salt, and remaining 1/2 cup of flour. Stir the dough to incorporate everything.
Place the dough on a floured surface and roll into a large rectangle- about 30 by 10 inches. Pour the melted butter all over the dough and smooth it out. Then top the butter with both sugars and the cinnamon (trying to distribute them evenly). Starting at the top, left corner, slowly begin to tightly roll the dough going horizontal in a typewriter motion. When you reach the end of the top right corner, continue to roll in the opposite direction. When you reach the end, pinch the seams together.
Cut the rolls in 1- 1 1/2 inch slices. The log will make around 20 to 25 rolls.
Preheat the oven to 375 degrees.
Butter your baking dishes and place the rolls in the pans. Cover with kitchen towels and let rise for another 20 minutes. When the rolls have risen, bake the rolls for 10 to 15 minutes, depending on how gooey you like them.
While the rolls are baking, place the sugar, milk, cream cheese, butter, and vanilla in a mixer and mix to combine. If the frosting is too thick you can add in a splash of milk, if it is too thin you can add more powdered sugar.
Frost the rolls right when they come out of the oven, making sure to get frosting over the whole surface and in any of the cracks. I like to over-frost my cinnamon rolls! Serve warm with a glass of milk and enjoy! Boy are these worth the time and calories!