Combine chocolate, butter, and vanilla in a medium bowl, and set aside. Heat milk in a medium saucepan, and bring to a simmer. Whisk sugar, cocoa, cornstarch, and salt together in a bowl. Beat the yolks in a bowl, using an electric mixer set on medium, for 1 minute.
Reduce the mixer speed to low, and add the sugar mixture. Beat together until it resembles wet sand. Add half the hot milk, and whisk until blended. Transfer the cocoa mixture to the saucepan. Cook over medium heat, while continuously whisking, until thickened -- about 8 minutes. Strain into the bowl of chocolate.
Strain into the bowl of chocolate. Let sit for 3 minutes before stirring smooth with a wooden spoon. Press a sheet of plastic wrap onto the surface of the pudding and chill for 2 hours before serving.