Add the egg yolks and cornstarch to a small bowl. Whisk together and set aside.
In a medium size saucepan combine the milk, cream, sugar and salt. Bring to a simmer over medium heat, just until the milk starts bubbling around the edge of the pot.
Remove 1/2 cup of heated milk mixture and in a slow and steady stream, pour this into the egg yolk mixture while whisking. Add the now warmed egg mixture into the saucepan with the heated cream.
Bring the cream and egg mixture back to a simmer while whisking. Continue cooking until this mixture is thickened and pulling away from the sides of the pot. Remove from the heat.
Stir in the butter and vanilla extract. Stir into the pudding until completely melted and smooth.
If needed pour this mixture into a fine mesh strainer to remove any lumps from cooking.
Let this pudding mixture sit and cool for about 5 minutes before adding to a medium size bowl.
Cover the pudding mixture with plastic wrap pressed down directly on top of the pudding and place in the refrigerator to cool for at least 30 minutes before proceeding with the next step.
In a medium size mixing bowl add the ingredients for the whipped cream.
Mix with a hand mixer or stand mixer until cream forms stiff peaks.
Spoon half of the whipped cream into the pudding and stir to combine.
In a 2 quart dish add a layer of Nilla wafers, top with a layer of sliced bananas, then half of the banana pudding mixture. Repeat this one more time. If you are using a glass dish you could line wafers and slices of banana along the side of the dish to make a pretty presentation.
Cover and let this chill for at least 3 hours before serving.
Top with the remaining whipped cream just before serving.