01 - In a medium saucepan, whisk together granulated sugar, cocoa powder, cornstarch, and salt until evenly mixed.
02 - Gradually whisk in milk until the mixture is smooth and fully combined.
03 - Place saucepan over medium heat and cook, whisking continuously, until the mixture thickens and begins a gentle boil, approximately 8 to 10 minutes.
04 - Lower heat to low and continue cooking for 1 to 2 minutes, stirring constantly to maintain smoothness.
05 - Remove saucepan from heat, then stir in chopped semisweet chocolate and vanilla extract until the chocolate melts completely and the pudding is smooth.
06 - Transfer pudding into individual serving dishes, cover surface directly with plastic wrap to prevent skin formation, and refrigerate for at least one hour until well chilled.
07 - In a mixing bowl, combine cold heavy cream, powdered sugar, and vanilla extract. Whip using an electric mixer on medium-high speed until soft peaks form, about 2 to 3 minutes.
08 - Top each chilled pudding serving with a generous dollop of freshly whipped cream before serving.