In a medium bowl, whisk together cornstarch, cocoa powder, 3 tablespoons of sugar, and salt until combined. Add 1/4 cup milk and whisk until smooth. Add egg and yolks and whisk until combined. Set aside.
In a medium saucepan over moderate heat, bring to a boil the remaining 2 cups of milk and 3 tablespoons of sugar, stirring until sugar is dissolved. Remove from heat.
Gradually pour the hot milk into the egg mixture, constantly whisking until smooth. Transfer mixture back into saucepan. Cook over medium-low heat, whisking constantly, until mixture thickens and coats the back of a spoon, 2-3 minutes. It should have a consistency similar to mayonnaise.
Strain the pudding into a medium heatproof bowl. Add the chopped chocolate, butter, and vanilla and whisk until the chocolate and butter are completely melted and pudding is smooth. Transfer pudding to 4-ounce or 6-ounce ramekins and refrigerate for at least 3-4 hours until chilled. You can press a piece of plastic wrap directly onto the surface of the pudding to prevent it from creating a ‘skin’. Serve with lightly whipped cream if you like.
Chocolate pudding can be covered with plastic wrap and refrigerated for up to 4 days. It does not freeze well.