Prepare the Cake Batter : Preheat the oven to 350°F (175°C). Grease and flour two 9-inch round cake pans or line them with parchment paper. In a large mixing bowl, sift together the flour, sugar, baking soda, cocoa powder, and salt. Set aside. In a separate bowl, whisk together the vegetable oil, eggs, buttermilk, vanilla extract, vinegar, and red food coloring until well combined. Gradually add the wet ingredients to the dry ingredients, mixing until just combined. Be careful not to overmix to keep the cake tender.
Bake the Cakes Divide the batter evenly between the prepared cake pans. Bake for 25-30 minutes, or until a toothpick inserted into the center comes out clean. Allow the cakes to cool in the pans for 10 minutes, then transfer them to a wire rack to cool completely.
Make the Cream Cheese Frosting : In a large bowl, beat the butter and cream cheese together until smooth and creamy, about 2-3 minutes. Gradually add the powdered sugar, one cup at a time, beating well after each addition. Mix in the vanilla extract and salt, adjusting to taste. Beat until the frosting is light and fluffy.
Assemble the Cake : Place one cake layer on a serving plate or cake stand. Spread a generous layer of frosting on top. Add the second cake layer and frost the top and sides of the cake. For a smooth finish, use an offset spatula or bench scraper. Decorate as desired.
Serve and Enjoy : Chill the cake in the refrigerator for 30 minutes to set the frosting, if desired. Slice and serve at room temperature.