Prepare the custard: In a medium-sized saucepan, combine the milk and heavy cream. Place over medium heat and warm until just beginning to steam—don’t bring it to a boil.
Mix the egg yolks and sugar: In a separate mixing bowl, whisk together the egg yolks, sugar, and cornstarch until smooth.
Temper the eggs: Slowly pour a small amount of the hot milk and cream mixture into the egg mixture while whisking constantly to temper the eggs (this prevents them from scrambling).
Combine and cook the custard: Gradually pour the egg mixture back into the saucepan with the rest of the milk. Cook over medium heat while whisking constantly until the mixture thickens and reaches a pudding-like consistency, about 5-7 minutes.
Add flavor and butter: Remove the saucepan from the heat and whisk in the vanilla extract, salt, and butter. Continue stirring until the butter has melted and the custard is smooth.
Layer the pudding: In a 9x9-inch baking dish, layer the vanilla wafers on the bottom. Add a layer of sliced bananas on top of the cookies. Pour half of the custard over the bananas and cookies. Repeat with another layer of wafers, bananas, and custard.
Chill and serve: Cover the banana pudding with plastic wrap and refrigerate for at least 4 hours or overnight. This allows the flavors to meld and the pudding to set properly. When ready to serve, optionally top with whipped cream or a few extra vanilla wafers for crunch.