Step 1: Preheat your oven to 350°F (175°C). Prepare your 9-inch round cake pans by greasing them with butter and dusting them with flour or lining them with parchment paper.
Step 2: In a large mixing bowl, whisk together 2 cups of all-purpose flour, 2 teaspoons of baking powder, 1 teaspoon of baking soda, 1 teaspoon of salt, and 2 tablespoons of cocoa powder. Set aside.
Step 3: In another bowl, beat together 1 cup of softened unsalted butter and 1 cup of sugar using an electric mixer. Mix until the mixture is light and fluffy, which should take about 3-4 minutes.
Step 4: Add 2 eggs, 1 tablespoon of vinegar, 2 teaspoons of vanilla extract, and 1 tablespoon of red gel food coloring to the butter and sugar mixture. Beat until well combined.
Step 5: Gradually add the dry ingredients to the wet mixture, alternating with 1 cup of buttermilk. Start and end with the flour mixture, mixing just until combined. Do not overmix.
Step 6: Divide the batter evenly between the prepared cake pans. Bake in the preheated oven for 25-30 minutes, or until a toothpick inserted in the center comes out clean. Allow the cakes to cool in the pans for 10 minutes before transferring them to a cooling rack.
Step 7: In a mixing bowl, beat together 8 ounces of softened cream cheese and 1/2 cup of softened unsalted butter until smooth. Gradually add in 1 cup of icing sugar, 2 tablespoons of all-purpose flour, and 2 tablespoons of milk, mixing until you achieve a creamy consistency. Stir in 1 teaspoon of vanilla extract and a pinch of salt.
Step 8: Once the cake layers are completely cool, place one layer on a serving plate. Spread a generous layer of cream cheese frosting over the top, then gently place the second layer on top. Frost the top and sides of the cake with the remaining frosting, smoothing it out with an offset spatula.