In a bowl, whisk together the cornstarch, ½ cup brown sugar, salt, egg yolks, and ½ cup milk until smooth and lump free, then set aside.
In a saucepan over medium heat, melt the butter, add the remaining ½ cup brown sugar, and cook for 2 to 3 minutes until bubbling and caramelized, then slowly whisk in the remaining milk and heavy cream.
Slowly whisk the warm butterscotch mixture into the egg and cornstarch mixture a little at a time to temper the eggs, then return everything to the saucepan.
Cook over medium heat, whisking constantly, for 4 to 6 minutes until thick and smooth, then cook for 1 additional minute once bubbling to remove any starchy taste.
Remove from the heat and whisk in the vanilla along with a small pinch of salt, if using, to enhance the flavor.
Pour the pudding into small cups or ramekins, cover with plastic wrap pressed directly onto the surface to prevent a skin, and chill for at least 2 hours, ideally 4, before serving.