Preheat the oven to 350 degrees. Line cupcake pans with 14 or 15 paper liners.
In the bowl of an electric mixer fitted with the paddle attachment, cream the butter, granulated sugar, and brown sugar on medium-high speed for 5 minutes, until light and fluffy. Scrape down the bowl. Lower the speed to medium, add the eggs one at a time, then add the vanilla and mix well. In a separate bowl, whisk together the buttermilk, sour cream, and coffee. In a third bowl, sift together the flour, cocoa powder, baking soda, and salt. With the mixer on low, add the buttermilk and flour mixtures alternately in thirds, beginning with the buttermilk and ending with the flour. Don't overmix! Fold the batter a few times with a rubber spatula to be sure it's mixed.
Scoop the batter into the cupcake liners. (I use a 2-inch ice cream scoop.) Bake in the center of the oven for 20 to 25 minutes, until a toothpick comes out clean. Cool for 10 minutes, remove from the pans, and allow to cool completely before frosting.
Melt the butter in a large saucepan over medium heat. Whisk in the evaporated milk, brown sugar, and egg yolks and bring to a simmer over medium heat. Simmer, stirring constantly with a wooden spoon, for about 15 minutes, until slightly thickened. If the mixture looks a bit curdled, beat it vigorously with a whisk. Off the heat, stir in the vanilla extract, almond extract, coconut, almonds, pecans, and salt. Allow to cool for about an hour. Frost the cupcakes with a knife or small metal spatula.