Cut the butter into small cubes. It works well to cut the butter into tablespoons and then cut the tablespoons into fourths. Return the cut butter to the refrigerator for use later in the recipe.
In a 2 quart pot, whisk together the sugar, cornstarch, and salt. Make sure that there are no lumps in the cornstarch.
Stir in the 4 beaten egg yolks until evenly distributed. The mixture may be stiff. Add the half and half and the milk. Whisk well to combine.
Cook over medium low heat, whisking or stirring constantly until thickened and bubbly, about 10 minutes. Remove from heat.
Add the butter, one piece at a time, stirring until melted before adding the next piece.
Stir in the vanilla.
Pour pudding into a bowl. Cover with plastic wrap, pushing the plastic wrap evenly against the top of the pudding. This will keep the pudding from developing a "skin" as it cools. Refrigerate for 2 hours or until pudding has chilled thoroughly.
Toast the coconut in a 325 degree F oven until golden. Watch carefully, browning happens quickly. Set aside to cool.
Whip the cream together with the 1 tablespoon sugar until it reaches preferred consistency. I like my whipped cream with a little body, not too soft, but definitely not to the butter stage.