Preheat the oven to 350°F (175°C). Grease two 9-inch round cake pans and line the bottoms with parchment paper.
In a large bowl, whisk together the flour, cocoa powder, baking powder, baking soda, and salt until evenly combined.
In a separate large bowl, beat the softened butter and granulated sugar until light and fluffy.
Add the eggs one at a time, beating well after each addition. Mix in the vanilla extract.
Gradually add the dry ingredients, alternating with the buttermilk. Mix gently until combined, then slowly add the hot water. The batter will be fairly thin.
Divide the batter evenly between the prepared cake pans. Smooth the tops with a spatula.
Bake for about 30–35 minutes, or until a toothpick inserted into the center comes out clean or with a few moist crumbs.
While the cakes cool, prepare the topping. In a saucepan, combine the evaporated milk, brown sugar, egg yolks, and butter. Cook over medium heat, stirring constantly, until thickened. Remove from the heat and stir in the vanilla, shredded coconut, and chopped pecans. Allow the topping to cool and thicken slightly.
Let the cake layers cool in their pans briefly, then transfer them to a wire rack. Allow them to cool completely before assembling.
Place one cake layer on a serving plate. Spread a generous layer of coconut-pecan topping over the cake. Add the second cake layer and spread the remaining topping over the top.
Let the cake sit for a few minutes before slicing. Cut into 12 portions and serve at room temperature.