In a small bowl, mix warm milk and sugar. Sprinkle yeast over the top, stir, and let sit for 5-10 minutes until foamy.
In a large bowl, whisk together flour, cocoa powder, baking powder, and salt.
Add the yeast mixture, egg, butter, vanilla extract, and red food coloring to the dry ingredients. Stir until a dough forms.
Knead the dough on a floured surface for 8-10 minutes until smooth and elastic. Place the dough in a greased bowl, cover with a damp towel, and let it rise for 1 hour or until doubled in size.
In a small bowl, mix brown sugar and cinnamon.
Roll out the risen dough into a 12×18-inch rectangle. Spread softened butter over it, then sprinkle with the cinnamon-sugar mixture.
Roll the dough tightly from the long side and cut into 12 equal pieces. Place rolls into a greased 9×13-inch baking dish.
Cover and let the rolls rise for another 30 minutes, until puffy.
Preheat oven to 350°F (175°C). Bake for 20-25 minutes until golden brown.
In a bowl, beat cream cheese, butter, and vanilla extract until smooth. Gradually add powdered sugar and beat until fluffy.
Let the rolls cool slightly, then spread the cream cheese icing over the warm cinnamon rolls.