Preheat oven to 350 degrees F (175 degrees C). Grease and flour 2 9-inch cake pans. In a bowl, sift together the cake flour, chocolate pudding mix, cocoa powder, and salt.
In a large bowl, beat 1/2 cup of butter with 1 1/2 cup of sugar with an electric mixer until creamy; beat the eggs in, one at a time, and beat until the mixture is fluffy, about 1 minute. Beat in the flour mixture, alternating with buttermilk, in several additions. Mix in 1 teaspoon of vanilla extract and the red food color until the batter is uniformly colored. In a bowl, stir the baking soda with vinegar, and gently fold the foamy mixture gently into the batter. Pour the batter into the prepared cake pans.
Bake in the preheated oven until a toothpick inserted into the center of a cake comes out clean or with moist crumbs, about 30 minutes. Allow to cool completely before frosting.
For frosting, place all-purpose flour in a saucepan, and gradually whisk milk into the flour, about 2 tablespoons at a time, until smoothly combined. Bring the mixture to a simmer over medium-low heat, whisking constantly until thickened and smooth; allow to cool completely. Beat 1 cup of sugar and 1 cup of butter in a bowl with an electric mixer until fluffy, about 1 minute, and gradually beat in the cooled milk mixture; add 1 teaspoon of vanilla extract. Beat the frosting until fluffy and spreadable, 1 to 2 more minutes.