For the caramel sauce: in a small saucepan, dissolve sugar over medium heat until golden and completely melted. Watch very closely. As soon as it reaches that toasty brown hue, remove from the heat and stir in the butter until melted. The liquid will foam and bubble angrily. That's good! When the butter completely melts, place back on medium heat. Whisk in the heavy cream, vanilla, and salt for 2-3 minutes until thickened and well combined. Transfer to a heat-safe jar or bowl and set on the counter to cool, or place in the fridge while you make the rest of the cake.
Preheat oven to 350. Grease three 6 inch or two 9 inch cake pans well with butter or oil.
In the bowl of a stand mixer or with a hand mixer, cream butter and sugar for 2-3 minutes until whipped and creamy. Beat in eggs, one at a time, until fully incorporated. Whisk in vanilla.
In a separate small bowl, whisk together the flour, baking powder, baking soda, and salt. In three turns, alternate adding the flour mixture and buttermilk to the sugar and butter bowl. Whip each addition until just combined. Do not overmix else you risk a stiff, tough cake.
Pour batter evenly into prepared cake pans. Bake 30-35 minutes until the center is just set and a toothpick inserted into the center comes out with just a few tender crumbs. Remove from the oven and let layers cool in the pan for 5-10 minutes. Run a knife around the edges of the cake pans and turn layers onto a wire baking rack to cool completely.
When the cakes are cooled, prepare the buttercream. Whip together the butter, powdered sugar, vanilla, instant espresso, Kahlua (if using), and a tablespoon of heavy cream. Add in heavy cream one tablespoon at a time, if needed, until a fluffy and creamy texture is achieved.
If needed, level the tops of the cake layers with a sharp knife. Set one layer on a plate or cake stand and spread 1/2 cup of the frosting from edge to edge. Place a second layer and repeat. Finish with the third layer. Frost a thin coat of buttercream all over the cake. Set in the fridge for 10 minutes. This is your "crumb layer," which will render the rest of your decorating much more smooth.
Frost the remainder of the cake with the buttercream. Add a ring of caramel along the perimeter of the top layer and let it drip down the sides of the cake, then drizzle caramel over the top. You may have some sauce leftover for later use.