Chill your tools: Place a mixing bowl and beaters in the fridge for 10 minutes. Cold equipment helps the cream whip quickly and hold its shape.
Whip the cream: In the chilled bowl, whip the heavy cream to stiff peaks.
Don’t overmix. Set aside. If using whipped topping, skip this step.
Make the pudding: In a separate bowl, whisk the instant pudding mix with cold milk for 2 minutes until thickened.
Let it sit for another 2–3 minutes to fully set.
Beat the cream cheese: In a large bowl, beat the softened cream cheese, sugar, vanilla, and a pinch of salt until ultra-smooth and fluffy. Scrape the bowl to avoid lumps.
Combine the creamy base: Beat in the sweetened condensed milk until silky. Then whisk in the prepared pudding until fully blended and smooth.
Fold in the whipped cream: Gently fold the whipped cream (or whipped topping) into the cream cheese–pudding mixture until no streaks remain.
Keep it airy.
Layer the dessert: In a 9x13-inch dish, add a single layer of Nilla wafers. Top with half the banana slices. Spread half the cream filling over the bananas.
Repeat: Add another layer of wafers, the remaining bananas, and the rest of the cream filling.
Smooth the top.
Finish with crunch: Sprinkle crushed Nilla wafers over the top for texture. Add a few banana slices right before serving, not now, to avoid browning.
Chill: Cover and refrigerate for at least 4 hours, preferably overnight. This allows the wafers to soften and the flavors to meld.
Serve: Slice into squares or spoon into bowls.
Garnish with a light dusting of cinnamon if you like.