Whisk Dry Ingredients. In a medium saucepan, combine sugar, cocoa powder, cornstarch, and salt. Whisk to combine well.
Pour In Milk. Add the milk to the cocoa mixture and whisk to combine. It will take a second to combine, and it will look pretty foamy at first.
Cook To Thicken. Whisk the milk mixture over medium heat until the pudding begins to thicken. You want to stir pretty constantly, so the pudding doesn’t form lumps. You’ll know it’s thickened when any foamy bubbles go away, and you can see the path of the whisk in the pudding as you stir. Remove from the heat.
Finish. Immediately add chocolate, butter, and vanilla extract. Whisk to combine until the chocolate is melted. If desired, you can strain the pudding through a fine mesh sieve to remove any small lumps, but I don’t usually.
Cover & Chill. Transfer the pudding to a large bowl, airtight container, or individual serving cups. Cover with a piece of plastic wrap or food wrap so the pudding doesn’t develop a “skin” (a layer of thickened pudding on top). Chill in the refrigerator 2-3 hours or until completely cool. Leftover chocolate pudding will keep covered in the fridge 3-4 days, so you can mix it up in advance, if needed. (You may need to stir it a bit to loosen it up for scooping)