In a large pot, add the heavy cream, coconut milk, and salt over medium heat. Warm the milk until the surface begins to steam and it is very warm to the touch—do NOT scald the milk or bring to a simmer.
As the milk warms, whisk together the egg yolks, cornstarch, and 1/2 cup of sugar in a medium mixing bowl until smooth.
Temper the yolks; take the milk off heat and then, using a ladle, add about 1/4 c of the warmed milk into the egg yolk mixture, whisking constantly so the yolks don’t curdle or cook. Whisk in about 2 cups of the milk to the yolks before adding the liquid back to the pot with the remaining cream.
Stir together and bring heat to medium-low. Whisk constantly until thickened, about 6 minutes or until the whisk leaves trails as you stir, the pudding clings to the walls of the pot, and the consistency is thick enough to coat the back of a spoon. Whisk in the vanilla extract, and butter until combined.
Transfer to a heatproof bowl (or divide into ramekins) and press plastic to the top to prevent a skin from forming. Refrigerate until chilled.
Serve with fresh berries, chocolate-filled wafer straws, and whipped cream.