Make the Cake: Preheat oven to 350 degrees F. Lightly grease a 9x13-inch baking pan.
On medium-high speed, cream the butter and sugar until light and fluffy, about 3 minutes. Turn the mixer to high and add the eggs. Scrape down the bowl and beat until well incorporated.
In a separate small bowl, mix together the cocoa powder, vanilla extract and red food coloring to make a thick paste. Add to the batter and mix on medium speed until completely combined. You may need to stop the mixer to scrape the bottom of the bowl, making sure that all the batter gets color.
Reduce the mixer speed to low and slowly add half of the buttermilk. Add half of the flour and mix until combined. Scrape the bowl and repeat the process with the remaining milk and flour. Beat on high until smooth, about 1 minute.
Again, reduce the mixer speed to low and add the salt, baking soda and vinegar. Turn to high and beat for another 2 minutes until completely combined and smooth.
Pour the batter into the prepared baking pan, smoothing the top into an even layer with a spatula. Bake until a thin knife or skewer inserted into the center comes out clean, about 25 to 30 minutes.
Remove the cake from the oven and immediately poke holes all over the top of the cake. You can use the end of a wooden spoon, a skewer, the tines of a fork, etc. Slowly pour the can of condensed milk all over the top of the cake, making sure to drizzle it evenly all over the top. If it pools along the edges, use a spoon to scoop it up and redistribute it on top. Allow the cake to cool completely before frosting and decorating.
Make the Frosting: Using a stand mixer with the whisk attachment, whip the butter and cream cheese on high speed for about 5 minutes, scraping the bowl down as necessary. Reduce the speed to low and slowly add the powdered sugar until all is incorporated. Add the vanilla and mix to combine. Increase the speed to medium high and whip for a few minutes until the frosting is light and fluffy, scraping the bowl as necessary.
Spread the frosting evenly over the top of the cake and decorate as desired. Store leftovers in an airtight container in the refrigerator for up to 1 week.