These puddings are made with both semisweet chocolate and cocoa powder, so they have a rich chocolate flavor without being too sweet.
In a medium saucepan, bring 2 cups milk,1/4 cup sugar, and salt to a boil over medium heat.
Meanwhile, in a medium bowl, whisk together remaining 1/4 cup sugar, cocoa powder, and cornstarch. Whisk in remaining 1/4 cup milk until smooth.
In a steady stream, whisk cocoa-powder mixture into milk mixture in pan. Cook over medium heat, whisking constantly, until thickened and returned to a boil, about 1 minute. Remove from heat. Stir in chocolate, butter, and vanilla. Cover; let stand 5 minutes. Stir to combine.
Divide pudding among six custard cups or small bowls. Cool to room temperature. Cover with plastic wrap, and refrigerate until chilled, at least 1 hour. Serve puddings with a dollop of whipped cream.
If you prefer, spoon the pudding into a medium-size bowl at the beginning of step 4, then serve it right from the bowl.