Place a sieve over a medium mixing bowl and set aside.
In a medium saucepan over medium heat, combine the milk, sugar, cocoa powder, cornstarch, instant coffee, and salt and heat until simmering.
While the milk mixture is heating, whisk the egg yolks in a small bowl and set them aside.
Once the milk mixture is hot, pour one ladleful at a time into the eggs while whisking constantly.
Return the mixture to the saucepan and turn the heat to low. Cook, stirring constantly, until the custard is thick enough to coat the back of a spoon.
Remove the custard from the heat and stir in the chocolate, butter, and vanilla extract until the chocolate is fully melted.
Immediately pour the custard through the sieve and discard any solids left in the sieve.
Place plastic wrap directly on the surface of the pudding and place in the refrigerator for at least 2 hours, until thoroughly chilled.
When ready to serve, divide into 4 serving bowls and top with a dollop of whipped cream.