Preheat the oven to 350 degrees F. Butter and flour 3 8-inch cake pans.
In a medium bowl, whisk together the flour, sugar, cocoa powder, baking soda, baking powder and salt.
In the bowl of a stand mixer fitted with the paddle attachment, combine the eggs, buttermilk, yogurt, melted chocolate, oil, and vanilla, and mix on medium speed for about 3-4 minutes.
*If your ingredients were cold, adding the chocolate may cause some lumps in the mixture, but this won't affect the finished product.
Turn the mixer speed down to low and add the dry ingredients in two batches, mixing until combined. Slowly add the coffee, scraping down the sides and bottom of the bowl, and mix until smooth and fully combined.
Distribute the cake batter evenly among the three pans. I like to use a scale for this, especially when doing a naked frosting style, so that the layers will be of equal size.
Bake layers for 30-35 minutes, or until a toothpick inserted in the center comes out clean. Cool in pans for at least 20 minutes before turning the layers out onto a cooling rack.
Frost the cake to a smooth finish. Slowly pour some caramel sauce over the top of the cake, spreading it to the edges with an offset spatula so that it drips down the sides.
In a stand mixer fitted with the paddle attachment, combine the butter and cream cheese on medium speed until smooth.
Turn the speed down to low and add the sugar, one cup at a time until smooth, scraping down the sides of the bowl.
Add a 1/2 cup to 3/4 cup of the cooled caramel, along with vanilla and beat until well combined, scraping down the sides and bottom of the bowl.
*If you add a full 3/4 cup of caramel sauce, you may find that the frosting is a bit too soft at this point. Adding about a half cup of confectioner's sugar should solve this.
Pour the sugar into a large dry, preferably light-colored, skillet, over medium-high heat. After a few minutes, the sugar will begin to melt and turn golden. Whisk occasionally until it is completely melted. Remove from heat.
Add the butter, whisking it in one tablespoon at a time. Whisk in the heavy cream or coconut cream until smooth and well combined.
Return the pan to medium heat. Continue to cook for about 5 minutes, until the caramel begins to thicken. Remove from heat and whisk in the vanilla extract and salt.
Pour the caramel sauce into a heatproof bowl and let it cool to room temperature before using in the frosting. It will continue to thicken as it cools. The caramel can be put in the refrigerator to speed this up.