In a large bowl, combine the warm water, 1-2 teaspoons of the sugar, and the yeast. Mix well, then let sit for 5 minutes while the yeast proofs and becomes foamy.
Add remaining sugar, eggs, buttermilk, melted butter, salt, and 1 cup of flour. Mix well, then add another cup of flour and mix again. I find this easiest to do with a stand mixer using the beater attachment but it can be done by hand.
Switch to the dough hook, then add another 2 cups of flour. Knead for 8-10 minutes. The dough should clean the sides of the bowl after kneading for a few minutes. If not, add remaining ½ cup of flour, kneading in to create a very soft dough. Do not add the additional flour if it isn't needed as too much flour can make for dense, dry cinnamon rolls instead of light, soft, fluffy ones.
Cover the dough with plastic wrap and let rise for 1 hour until doubled in size. While the dough is rising, combine the brown sugar, granulated sugar, cornstarch, and cinnamon for the filling and set aside.
Spray a clean surface with cooking spray. Lightly grease a baking sheet with cooking spray and set aside.
Turn out dough and use a rolling pin to roll out into a 14"x18" rectangle. Spread the softened butter over the dough. Sprinkle with the filling mixture, then roll up the dough into a tight log from one of the long sides, pinching the ends together.
Slice into 12 cinnamon rolls using string or floss. Place cut-side up on baking sheet, then cover loosely with plastic wrap and let rise 30-45 minutes.
When there are 15 minutes left, preheat oven to 350 degrees F. Once the rolls have risen, bake them for 20-24 minutes until golden brown on top and cooked through. Do not overbake or the cinnamon rolls will be dry.
While the cinnamon rolls bake, make the frosting by combining the butter and cream cheese in a bowl and beating well until creamy and combined, about 2 minutes. Add half of the powdered sugar, mixing until combined. Add remaining powdered sugar, heavy cream, and vanilla, beating until light and creamy.
When the cinnamon rolls come out of the oven, let them rest for 3-5 minutes, then frost with the frosting while the cinnamon rolls are still warm so that it can partially melt down into and over the cinnamon rolls.