In a medium sauce pan over medium heat, combine the sugar, cornstarch, egg, egg yolk, whole milk, vanilla extract, and salt. Whisk together until combined, then continue whisking for 8-10 minutes, until the pudding begins to bubble like hot lava (AKA thick pudding with bubbles that sound like a 'plopping' noise because of said thickness). Add in the unsalted butter, reduce heat to the lowest setting, and whisk until completely melted. Pour the pudding through a mesh sieve into a separate bowl, then allow to sit in the fridge for 20-30 minutes, until cool to the touch.
When the pudding is ready, begin to layer your pudding. First, place a layer of bananas in the bottom of a 9x5 inch loaf pan (or something of similar size), then a layer of vanilla wafers (it doesn't have to be perfect, because when you scoop up the pudding to serve, everything gets served together), then a layer of pudding. Repeat this banana, wafer, pudding layering until the last layer is pudding. Place in the fridge for 5-6 hours, covered in tin foil or plastic wrap.
When the pudding is ready, whip together the heavy cream, powdered sugar, and vanilla extract until peaks form, about 5 minutes at the most. Top the pudding with the whipped cream, then sprinkle some crushed wafers over the top of the pudding. Keeps well in the fridge for 3 days. Serves 8.
Recipe by The Crepes of Wrath at http://www.thecrepesofwrath.com/2010/03/29/magnolia-bakery-banana-pudding/