In a small bowl, whisk the cocoa powder, cornstarch, and ¼ cup of the sugar until blended; set aside. In a medium bowl, whisk together the egg and egg yolks; set aside.
In a medium saucepan, combine 2 cups of the milk, the remaining ¼ cup sugar, and the salt. Bring to a boil over medium heat, whisking until the sugar dissolves, about 2 minutes.
Whisk in the cocoa mixture until blended. Bring the mixture to a boil over medium heat, whisking constantly. Reduce the heat to medium low and simmer, whisking constantly, until the pudding is thick enough to coat the back of a spoon, about 2 minutes.
Gradually whisk about 1 cup of the hot pudding into the eggs until well blended, then scrape this mixture back into the saucepan. Cook the pudding over medium heat, whisking constantly, until it just comes to a boil, about 2 minutes. Remove the pan from the heat.
Melt the chocolate with the butter, vanilla and remaining ¼ cup of milk, stirring until smooth. Add to the pudding and stir until well blended. Transfer the pudding to 6-oz. ramekins and refrigerate until chilled. (If you're not in a hurry, press a piece of plastic wrap directly onto the surface of the pudding in the bowl and refrigerate.) Serve with lightly whipped cream.