In a small bowl, whisk together 1/4 c of the milk and the cornstarch together until smooth. Set aside for now.
Pour the remaining milk, butter, vanilla, and salt into a small pan over medium heat and bring to a simmer.
Add in the cornstarch slurry, and whisk until smooth. Cook until the mixture is simmering and thickened, about 2-3 minutes.
Remove pan from heat and mix in the vanilla.
Transfer the pudding to a heat-proof container and refrigerate until completely cool (about 2-3 hours). The pudding should look thick and chunky.
Pour the coconut condensed milk into a large bowl. Add in the cooled pudding, and use an electric mixer to beat the condensed milk and pudding together until fully combined.
If you're using heavy cream, whip the cream with an electric mixer until stiff peaks form. If using prepared whipped topping (see notes), skip this step.
Scoop the fresh whipped cream (or prepared whipped topping) into the pudding mixture and gently fold it together fully combined.
To build your banana pudding, layer the homemade Nilla wafers, sliced bananas, and whipped pudding mixture (in that order), in a medium glass bowl until all ingredients are used. I was able to make 4 total layers, ending the whipped pudding on top.
Place the container in the fridge for at least 4 hours before serving. See blog post for notes on serving size and storage options.