In a medium bowl, whisk the egg yolks together with the cornstarch and 1/2 cup of the milk until they are completely combined, with no lumps remaining. Set aside.
In a medium saucepan, over medium high heat, combine the remaining 2 1/2 cups of milk, sugar, cocoa powder and salt. Heat until it is just about to a boil, whisking constantly. You will see steam rising off the liquid, and tiny bubbles forming around the edges.
Remove the liquid from the heat, and slowly pour it into the bowl with the egg yolk and cornstarch mixture, whisking constantly. Pour the entire mixture back into the saucepan and bring it to a full boil over medium high heat, whisking constantly. Reduce the heat to a simmer and continue cooking for another 1-2 minutes, until the mixture thickens. Remove from the heat and stir in the vanilla.
Pour the pudding into individual ramekins, or a large bowl, and cover with plastic wrap pressed directly onto the top of the pudding to prevent a skin from forming. Refrigerate for at least 2 hours before serving.