In a medium saucepan, stir together the sugar, cornstarch, and salt until well blended. Whisk in the milk.
Place the pan over medium-low heat and heat until almost simmering, stirring frequently.
In a large cup or bowl, whisk the egg yolks with heavy cream. Whisk about 1 cup of the hot milk mixture into the eggs and then pour the egg mixture into the saucepan; whisk to blend. Cook until the mixture begins to bubble, whisking constantly. Continue cooking for 1 minute, whisking constantly.
Remove the pudding from heat and add the vanilla extract or paste and butter. Stir to blend thoroughly. Pour into a bowl and let the mixture cool for about 20 minutes, stirring frequently.
Press a piece of plastic wrap over the surface of the pudding to keep air from forming a skin. Refrigerate to chill thoroughly.
Top with toasted coconut just before serving.
Notes
*To toast the coconut, put the coconut flakes or shavings in a dry skillet. Place the skillet over medium heat and cook until lightly browned, stirring constantly. Remove the coconut to a plate to cool.