Prepare your pans. Preheat oven to 350°F (175°C). Grease two 9-inch cake pans, line with parchment paper, then grease the paper. Also prepare a 9-inch springform pan by lining the bottom with parchment and greasing the sides.
Make the red velvet batter. In a large bowl, whisk together flour, sugar, baking soda, salt, and cocoa powder. In another bowl, beat together oil, buttermilk, eggs, food coloring, vinegar, and vanilla. Gradually mix the dry ingredients into the wet until just combined—do not overmix.
Bake the red velvet layers. Divide batter evenly between the two prepared cake pans. Bake for 25-30 minutes or until a toothpick inserted comes out clean. Cool in pans for 10 minutes before transferring to wire racks to cool completely.
Prepare the cheesecake filling. Reduce oven temperature to 325°F (165°C). Beat cream cheese and sugar until smooth and creamy, about 2 minutes. Add eggs one at a time, beating well after each addition. Mix in vanilla, sour cream, and flour until just combined.
Bake the cheesecake layer. Pour the cheesecake batter into the prepared springform pan. Bake for 45-50 minutes until the center is almost set but still slightly jiggly. Turn off the oven, crack the door open, and let the cheesecake cool in the oven for 1 hour. Then refrigerate for at least 4 hours or overnight.
Make the cream cheese frosting. Beat cream cheese and butter until smooth and fluffy. Gradually add powdered sugar, then vanilla and salt, beating until light and creamy. If too thick, add 1-2 tablespoons of milk; if too thin, add more powdered sugar.
Assemble the cake. Place one red velvet layer on your serving plate. Carefully remove the cheesecake from the springform pan and place it on top of the first cake layer. Top with the second red velvet layer.
Frost and decorate. Apply a thin crumb coat of frosting over the entire cake and chill for 20 minutes. Then apply the final coating of frosting, creating decorative swirls with an offset spatula. Garnish with white chocolate shavings or festive sprinkles if desired.
Chill before serving. Refrigerate the assembled cake for at least 2 hours before serving to allow the layers to set and flavors to meld. For best results, let the cake sit at room temperature for 20-30 minutes before slicing.