Add granulated sugar and salt to a cold small saucepan.
Sift in cornstarch and cocoa powder and whisk to combine.
Slowly stream in half & half and milk, whisking continuously to prevent lumps.
Place saucepan over medium-high heat and whisk continuously until mixture begins to steam.
Before the mixture reaches a boil, add the chopped dark chocolate.
Continue stirring, switching to a rubber spatula, until the chocolate melts and the pudding thickens to a bubbling consistency.
Remove from heat and stir in vanilla extract until well combined.
Divide the pudding evenly among 4 serving dishes.
Place plastic wrap directly on the surface of each pudding to prevent a skin from forming.
Refrigerate for approximately 2 hours, or until fully chilled.
Once chilled, remove the plastic wrap. Top each serving with whipped cream and a sprinkle of shaved dark chocolate.