Prep your dish: Use a 9x13-inch dish or a deep trifle bowl. Set aside.
Have your bananas sliced and ready so you can build the layers quickly.
Make the pudding base: In a medium saucepan, whisk together sugar, cornstarch, and salt. Add milk and heavy cream, whisking until smooth. Cook over medium heat, whisking often, until it begins to thicken and bubble around the edges.
Temper the eggs: In a separate bowl, whisk the egg yolks.
Slowly ladle in about 1/2 cup of the hot milk mixture while whisking constantly, then another 1/2 cup. Pour the tempered yolks back into the saucepan, whisking well.
Finish the pudding: Continue cooking over medium heat, stirring, until the pudding is thick and glossy, 2–4 minutes. Remove from heat.
Stir in butter, vanilla extract, and banana extract if using. Let it cool for 10 minutes, stirring occasionally to prevent a skin.
Build the first layer: Spread a thin layer of warm pudding on the bottom of your dish. Add a layer of vanilla wafers, then a layer of banana slices over the wafers.
Add more pudding: Spoon about a third of the pudding over the bananas, smoothing it gently.
Repeat layers: wafers, bananas, pudding, until you run out. Aim for 2–3 layers, ending with pudding on top.
Top it off: Once the pudding has cooled to just warm, spread whipped cream over the top. If using meringue instead, skip the whipped cream and see the meringue option below.
Chill: Cover and refrigerate for at least 4 hours, preferably overnight.
The wafers soften into a cake-like texture, and the flavors meld.
Meringue option (classic Southern touch): Preheat oven to 350°F (175°C). Beat egg whites with cream of tartar to soft peaks. Gradually add sugar and beat to stiff, glossy peaks.
Beat in vanilla. Spread over warm pudding, sealing edges. Bake 12–15 minutes until golden.
Cool to room temperature, then chill 2–3 hours before serving.
Serve: Garnish with crushed wafers or a few banana slices just before serving. Scoop generously.