Preheat oven to 350°F (175°C). Grease two 9-inch round cake pans and one 9-inch springform pan, line with parchment paper, and grease again.
Whisk together flour, cocoa powder, baking soda, and salt in a medium bowl. Set aside.
Beat butter and sugar on medium-high speed for 3-4 minutes until pale and fluffy. Add eggs one at a time, beating after each addition.
Combine buttermilk, red food coloring, vinegar, and vanilla. Alternate adding flour mixture and buttermilk mixture to butter mixture, beginning and ending with flour, mixing on low speed just until combined.
Divide batter between two prepared cake pans. Bake for 28-32 minutes until a toothpick inserted in center comes out with moist crumbs. Cool in pans 10 minutes, then turn onto wire racks to cool completely.
Beat cream cheese on medium speed for 2-3 minutes until smooth. Add sugar and beat 2 minutes more until light and fluffy.
Add eggs one at a time on low speed, then mix in sour cream, flour, vanilla, and salt just until combined. Pour into prepared springform pan.
Bake cheesecake at 350°F for 45-55 minutes until edges are set but center still jiggles slightly. Turn off oven, crack door open, and let cool in oven for 1 hour. Then refrigerate at least 4 hours or overnight.
Beat cream cheese and butter on medium-high speed for 2-3 minutes until smooth. Gradually add powdered sugar, then vanilla. Add heavy cream 1 tablespoon at a time until desired consistency is reached.
Place one red velvet cake layer on serving plate. Remove cheesecake from springform pan and place on top of first cake layer. Top with second cake layer.
Apply thin crumb coat of frosting over entire cake and refrigerate 20-30 minutes. Apply remaining frosting smoothly over top and sides. Refrigerate at least 2 hours before serving.
For cleanest slices, use a hot knife dipped in water and wiped dry between each cut. Let slices sit at room temperature 10-15 minutes before serving for best flavor.