Preheat the oven to 350°F (175°C), grease and flour two 9-inch round cake pans, and line their bottoms with parchment paper. Chill a medium bowl in the fridge.
In a large bowl, whisk together flour, sugar, cocoa, baking powder, baking soda, and salt. Then, add eggs, milk, oil, and vanilla, and beat until well combined. Pour the batter into the prepared pans.
Bake in the preheated oven until a toothpick inserted in the centers comes out clean, about 35 minutes. Afterward, cool the layers in the pans on wire racks for 10 minutes. Use a paring knife to loosen the edges, then carefully invert them onto racks to cool completely for 1 to 2 hours.
While the cake layers bake, drain the cherries for the topping, saving 1/2 cup of juice. Combine the reserved juice, cherries, sugar, and cornstarch in a 2-quart saucepan. Cook over low heat, stirring constantly, until thickened. Stir in vanilla. Let it cool at room temperature for 30 minutes, then transfer it to the refrigerator to cool completely before assembling the cake.
In the chilled medium bowl, combine whipping cream and confectioners' sugar for the frosting. Beat with an electric mixer on high speed until stiff peaks form.
Using a long serrated knife, split each cake layer in half horizontally. Set aside one layer as crumbs. Remove loose crumbs from the remaining layers with a pastry brush or your hands. Reserve 1 1/2 cups of frosting for piping decorations on the cake.
To assemble, place one cake layer on a cake plate, spread with 1 cup of frosting, and top with 3/4 cup of cherry topping. Add the second cake layer and repeat the layers of frosting and cherry topping. Finish with the third cake layer and frost the sides of the cake.
Pat the reserved cake crumbs onto the sides of the cake. Spoon the remaining 1 1/2 cups of frosting into a pastry bag fitted with a star decorator tip. Pipe around the top and bottom edges of the cake, then spoon the remaining cherry topping on top of the cake.
Store the cake covered in the refrigerator until ready to serve.