In a medium saucepan, whisk together granulated sugar, cornstarch, and kosher salt.
Gradually whisk in whole milk until the mixture is smooth.
Place the saucepan over medium heat and cook, whisking constantly, until the mixture thickens and comes to a gentle boil. This will take about 6 to 8 minutes.
While the pudding heats, in a medium bowl, lightly whisk the egg yolks.
Once the milk mixture is hot and thickened, slowly pour about 1 cup of the hot pudding into the egg yolks, whisking constantly to temper the eggs.
Pour the egg yolk mixture back into the saucepan with the remaining pudding and continue to whisk over medium-low heat for another 2 to 3 minutes, until thickened and bubbling.
Remove from heat and stir in unsalted butter and vanilla extract until smooth.
Transfer the pudding to a clean bowl and press a piece of plastic wrap directly onto the surface to prevent a skin from forming. Let cool at room temperature for about 30 minutes, then refrigerate until chilled (at least 2 hours or up to overnight).
Once pudding is fully chilled, assemble the banana puddings. In each glass dish, place a layer of vanilla wafer cookies at the bottom.
Add a spoonful of pudding on top, smoothing it out with a small spatula.
Layer banana slices over the pudding, followed by more cookies.
Repeat with another layer of pudding, more banana slices, and cookies until the glass is nearly full, finishing with a final layer of pudding.
Top with whipped topping, then sprinkle with crushed vanilla wafers and garnish with a banana slice and a whole cookie if desired.
Serve immediately or chill until ready to serve. Best served the same day for freshest bananas and cookies with a bit of crunch.