Make sure all of your ingredients are ready and out before you start. In a medium, heavy-bottomed saucepan, add your sugar. Cook the sugar over medium heat, stirring frequently. The sugar will slowly start to melt and become a deep amber brown color. Stir the mixture and heat until all of the sugar is completely melted.
Turn the heat off, and slowly stir in the butter until fully melted. Then, very slowly and stirring constantly, add in the heavy cream. It will violently bubble up as you add in the cream. If there are lumps, turn the heat back on and stir for a few more minutes. Then, stir in the salt and vanilla extract. Pour the caramel through a fine mesh sieve to remove any small lumps, and cover. Chill in the fridge for at least 2 hours, or until fully chilled.
Preheat your oven to 350 degrees and generously grease 2 8-inch cake pans. Optionally, line the bottom of the pans with parchment paper. Sift together the flour, baking powder, and salt and set aside.
In the bowl of a stand mixer, add in your eggs and use the whisk attachment to beat the eggs together. You can also do this with a hand mixer. Beat the eggs until they become foamy, and then with the mixer running, slowly start adding in the toasted sugar. You want to go extremely slowly for this step. Continue adding sugar and beating the eggs until they are extremely fluffy and a ribbon forms when the mixture drips off of the beaters.
In your measuring cup, stir together the whole milk, melted butter, and vanilla extract. Heat the mixture in the microwave for about 30 seconds to 1 minute, or until the mixture is warm to the touch. Add the sifted flour mixture and the warm milk mixture in alternating additions, folding each addition very gently into the egg mixture, until everything has been mixed in. You want to fold very gently, but you also want to make sure there are no pockets of flour hiding the batter, so be sure to turn your bowl often.
Divide the batter evenly between your two prepared cake pans, and bake for 25-28 minutes, or until a cake tester comes out clean. Cool the cakes completely before removing from the pan, and using a very sharp knife to cut off the tops and create a level surface.
In a small bowl, stir together the milk and vanilla extract. Generously brush the leveled off cakes with the milk mixture.
In a large bowl, or the bowl of a stand mixer, beat the butter until very fluffy and light in color, about 2 minutes on medium-high speed. Slowly beat in the powdered sugar until well combined and thick. Then, beat in the caramel sauce, salt, and heavy cream. Beat the frosting for a full 5-10 minutes, which seems like a long time, but it helps the frosting really combine evenly and become extra fluffy!
To frost the cake, place a small dab of frosting in the middle of your cake plate, and place one layer of cake on top, taking time to make sure it's centered on the plate. Spread a very thin layer of caramel sauce on top of the cake, about 3-4 tablespoons, in a thin layer that goes all the way to the edges. Top with a generous layer of caramel frosting, spread to go slightly over the edges. Then, repeat the process with the second cake layer, another thin layer of caramel, and a thick layer of frosting that goes over the edges slightly.
Cover the entire outside of the cake in a thin layer of frosting, using the overlapping frosting edges to coat the cake. Then, chill the cake for 30 minutes. This is the crumb coating, and it doesn't have to be perfectly smooth. You just want a very thin layer to catch all of the cake crumbs!
Finally, frost the outside of the cake as desired, and top with more caramel sauce and optionally, sprinkles. Slice to serve!