Make the custard base: In a medium saucepan, whisk together sugar, cornstarch, and salt.
Add the milk and 1/2 cup cream gradually, whisking until smooth. Place over medium heat and cook, whisking often, until the mixture begins to steam and thicken, 5 to 7 minutes.
Temper the egg yolks: In a separate bowl, whisk the egg yolks. Slowly ladle in about 1/2 cup of the hot milk mixture while whisking constantly.
Return the tempered yolk mixture to the saucepan, whisking as you pour.
Cook until thick: Continue cooking over medium heat, whisking constantly, until thickened to a pudding consistency and bubbling gently, about 2 to 3 minutes. Remove from heat and whisk in butter and vanilla extract.
Add banana flavor: Start with 1/2 teaspoon banana extract. Whisk and taste.
Add more in small increments until it tastes like banana pudding to you. Do not overdo it—banana extract is potent.
Chill the pudding: Transfer to a bowl. Press plastic wrap directly on the surface to prevent a skin. Chill until cool, at least 1 hour.
Whip the cream: In a cold bowl, whip 1 cup heavy cream with powdered sugar and vanilla to soft peaks.
Reserve 1/2 cup for topping if you like. Fold the remaining whipped cream gently into the cooled pudding for a lighter texture.
Assemble: In a 2-quart dish or trifle bowl, add a layer of vanilla wafers. Spoon a layer of pudding over the cookies.
Repeat layers until you run out, finishing with pudding on top.
Chill to set: Cover and refrigerate at least 4 hours or overnight so the wafers soften and flavors meld.
Garnish and serve: Top with the reserved whipped cream, crushed wafers, or shaved chocolate. Serve cold.