In a saucepan, whisk together the milk, sugar, cocoa powder, cornstarch, egg yolks, vanilla, and salt. Cook over medium-high heat whisking constantly, until the mixture comes to a simmer. Add the chocolate and butter.
While continuing to constantly whisk, bring to a full boil. Reduce the heat to maintain a simmer, and continue whisking until thick, about 2 or 3 minutes more.
Pour the pudding into a bowl or 6 small cups or ramekins. Cover with plastic wrap and refrigerate for at least 4 hours or until set.