Preheat the oven to 350F. To make the cake, beat the butter and sugar in the bowl of a large bowl - if possible in a stand mixer fitted with the paddle blade - on high speed for about 3 minutes, until light and fluffy. Beat in the eggs, one at a time, and the vanilla, scraping down the bowl as you need to.
In a small bowl or measuring cup, stir together the buttermilk, milk and red food colouring. In a medium bowl, stir together the flour, cocoa, baking powder, baking soda and salt. On low speed, add the flour in 3 additions, alternating with the milk mixture in 2 additions, beginning and ending with the flour. You'll have to scrape down the bowl a lot, and I covered the top of the mixer with a tea towel to prevent ingredient spray all over the kitchen walls.
Spray three 8" or 9" round cake pans with nonstick spray, and spread between 3/4 and 1 cup of batter evenly over the bottom of each. Bake for about 12 minutes, until springy to the touch and the sides are starting to pull away from the sides of the pan.
Let them cook for a minute or two before inverting the cakes out onto your hand and then onto a wire rack to cool. Wipe out the pans with paper towels, re-spray and repeat. I got 4 batches, for 12 layers.
To make the frosting, beat the butter and cream cheese until fluffy and smooth; add about a third of the icing sugar, the vanilla and a splash of the water and beat until smooth. On low speed, add another third of the icing sugar, and then the rest, adding more water as you need it to achieve a soft, spreadable frosting. (Ensure it's not so soft as to squish out the sides of the layers, though.)
Once the cake layers are completely cooled, start stacking them, frosting in between. I used not quite as much frosting as I would between traditional cake layers - go for peanut butter thickness to the thickness of the cakes themselves. Once you stack them all, frost the outside of the cake. Voila!