In a glass or microwave-resistant medium bowl mix 2 cups whole milk, 4 tablespoons unsweetened cocoa powder, 2 tablespoons cornstarch, ½ cup sugar and a pinch of salt. It will not completely integrate and that is fine.
Microwave it on high for 1 minute. Take it out the bowl and whisk the mixture until smooth. Nothing will have happened in terms of thickness, but the mixture will be properly incorporated.
Microwave it for 1-minute spurts, whisking well in between, until a layer is formed on top that will wrinkle if you touch it. It may take about 3 rounds. Whisk it until it’s all smooth. You will notice that it’s getting thicker.
Change to 30-second spurts. You will see that the layer becomes thicker every time you take the bowl out of the microwave and it might start to thicken more on the edges.
Simply whisk vigorously until it’s all creamy and smooth. After this happens it takes about 2 more rounds of the microwave. It takes me 5-6 minutes to achieve the consistency I like, which is similar to thick-ish honey. The mixture will thicken a lot after it’s refrigerated (See Notes, below).
Take the bowl out, immediately add 1 ounce semisweet chocolate and 1 teaspoon vanilla extract and whisk until smooth.
Cover the surface of the pudding quickly with a piece of plastic (freezer sheets or plastic wrap) making sure it is touching the whole surface. This is important because it will prevent a thick layer of dried pudding from forming on top.
Let cool down until lukewarm and refrigerate for several hours. I leave it overnight. Take it out, whisk it again, and distribute it between jars or bowls. You can also do this before refrigerating but you need to cover all containers with plastic. It’s just more laborious.
Decorate with whipped cream and chocolate shavings if you want and serve.