Preheat oven to 350°F (177°C). Grease three 9-inch round cake pans, line with parchment paper rounds, then grease the parchment paper.
Whisk the flour, cocoa powder, sugar, baking soda, baking powder, salt, and espresso powder (if using) together in a large bowl. Set aside.
Using a handheld or stand mixer fitted with a whisk attachment, mix the oil, eggs, sour cream, buttermilk, and vanilla together until combined.
Pour the wet ingredients into the dry ingredients, add the hot water or coffee, and whisk or beat it all until the batter is completely combined.
Divide batter evenly between 3 pans. Bake for 21-25 minutes. The cakes are done when a toothpick inserted in the center comes out clean.
Remove the cakes from the oven and set on a wire rack. Allow to cool completely in the pan.
Combine butter, brown sugar, egg yolks, and evaporated milk in a medium saucepan over medium heat. Whisk occasionally as the mixture comes to a low boil.
Once boiling, whisk constantly until the mixture thickens, about 5 minutes. Remove from heat and stir in vanilla, toasted pecans, and coconut. Allow to cool completely before layering in cake.
Level the cakes if needed. Place 1 cake layer on your cake stand. Evenly cover the top with ½ of the coconut pecan filling. Top with 2nd layer and evenly cover the top with remaining coconut pecan filling. Top with the third cake layer.
Spread the chocolate buttercream into a thick layer on top. Garnish with extra toasted pecans and coconut, if desired.
Refrigerate for at least 45 minutes before slicing.
