Start with the caramel sauce. Melt the sugar in a small saucepan over medium heat, about 5-6 minutes, stirring constantly. When the granules are totally dissolved and turn a rich golden color, add the butter. Be VERY careful – it will probably splatter! Melt the butter while stirring constantly. Carefully pour in the heavy cream, stirring, and simmer 2-3 minutes until thickened. Remove from the heat and add the salt and vanilla. Let cool – the caramel will continue to thicken. Unused caramel will keep for up to a week in the fridge.
Preheat oven to 350 degrees. Line 2 12-cup muffin tins with parchment liners.
In a large bowl, beat the oil, brown sugar, and regular sugar for 2-3 minutes until combined. Whip in the eggs, one at a time, then the vanilla and yogurt. Add the flour, cocoa powder, dark cocoa powder, baking powder, baking soda, espresso (if using), and salt. With the mixer running, stream in the buttermilk until the batter is just combined. Do not overmix.
Fill each cupcake tin 2/3 of the way with batter. Depending on what your heart says 2/3 of the way full is, you will get 22-24 cupcakes. Bake for 25-30 minutes until an inserted toothpick emerges with just a few moist crumbs. Cool 10 minutes in the pans, then transfer the cupcakes to wire racks. Cool completely.
Make the frosting. Whip the butter, caramel, and vanilla until combined, then add the powdered sugar. Pour in 1/3 cup of heavy cream, crank the mixer to high, and beat until very light and fluffy, about 2-3 minutes. You may need an extra tablespoon of two of cream to achieve the desired texture. Scrape down the sides of the bowl with a spatula, as needed, to properly incorporate all the ingredients.
Pipe or frost each cupcake with the buttercream. Finish with a drizzle of caramel sauce, as desired.