Make the Pudding: In a large saucepan, whisk together the sugar, cornstarch, salt, half-and-half, and milk. Set the pan over medium heat. Add the chocolate and whisk constantly until the chocolate is completely melted and the mixture begins to thicken, look glossy and large bubbles break on the surface. Remove from the heat and whisk in the vanilla. Transfer the pudding to a large bowl and press plastic wrap directly on the surface of the pudding. Refrigerate at least 4 hours, or up to 1 day.
Make the Cake: Preheat the oven to 325 degrees F. Grease and flour two 8-inch cake pans.
In a medium bowl, whisk together the flour, baking powder, baking soda and salt.
Melt the butter in a large saucepan over medium heat. Stir in the cocoa and cook until fragrant, about 1 minute. Remove from the heat, and whisk in the coffee, buttermilk, and sugars until dissolved. Whisk in the eggs and vanilla, then slowly whisk in flour mixture.
Divide the batter evenly between the prepared pans and bake until a toothpick inserted in the center comes out clean, about 30 to 35 minutes. Cool in the pans for 15 minutes, then invert onto a wire rack to cool completely, at least 1 hour.
Assemble the Cake: Cut each cake in half horizontally so that you have four layers. Crumble one cake layer into medium crumbs and set aside. Place one cake layer on a serving platter or plate. Spread 1 cup of the pudding over the cake layer and top with another layer. Repeat with 1 cup pudding and last cake layer. Spread the remaining pudding evenly over the top and sides of the cake. Sprinkle the cake crumbs evenly over the top and sides of the cake, pressing lightly to adhere. Refrigerate for at least 1 hour before serving. The cake can be stored in the refrigerator for up to 2 days.