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