(*Skip this step if using instant pudding - See my Notes at the bottom*)
Place a mesh strainer over a mixing bowl, preferably a bowl with a spout; set aside.
In a saucepan, combine sugar, cornstarch, and salt; whisk until combined.
While whisking, slowly add in 1/4 cup of the milk; continue to whisk until smooth.
Whisk in the egg yolks and the rest of the milk.
Place the saucepan over medium heat and cook, stirring frequently, until mixture begins to bubble, about 5 minutes.
Reduce heat to medium-low and, using a rubber spatula, stir constantly, scraping the bottom and sides of the pan, until the pudding thickens and makes ribbons when drizzled over the surface; about 4 minutes.
Remove from heat; stir in butter and vanilla extract.
Continue to stir until the butter is melted and well incorporated.
Pour the pudding through the previously prepared strainer.
Transfer to a container and cover with plastic wrap, lightly pressing the plastic wrap over the pudding so to prevent skin from forming.
Place in fridge and chill for 2 hours, or until set.