Warm the milk with half the sugar over medium heat until small bubbles form at the edges — just below a boil. Reduce heat to low.
Whisk remaining sugar and cornstarch together, then add egg yolks and whisk until pale and smooth. Do this only when the milk is hot and ready.
Slowly pour about 1 cup of hot milk into the yolk mixture in a thin stream, whisking constantly.
Pour the tempered mixture back into the saucepan.
Cook over medium heat, whisking continuously, until thick and coating the back of a spoon — about 3–5 minutes. Should reach 185°F (85°C).
Remove from heat. Stir in softened butter until melted.
Add the vanilla extract and mix well.
Strain through a fine mesh sieve into a clean bowl.
Press plastic wrap directly onto the surface — no air gap.
Cool to room temperature, then refrigerate at least 2 hours. Keeps 3 days in the fridge.