Make the pudding: Place the lime zest in a small bowl; cover and refrigerate. Toss the banana slices with the lime juice in a medium bowl; set aside. Whisk 1/4 cup sugar, the cornstarch and egg yolks in a large bowl.
Combine the milk, heavy cream, remaining 3/4 cup sugar and the salt in a medium saucepan and bring to a simmer over medium heat. Slowly whisk the milk mixture into the yolk mixture, then pour into the saucepan and bring to a boil over medium heat. Cook, stirring constantly, until thickened, about 3 minutes. Remove from the heat and stir in the butter and extracts. Let cool slightly, about 5 minutes.
Spread a heaping cup of the pudding in a 2-quart baking dish; cover with one-third of the banana slices, then half of the vanilla wafers and another heaping cup of the pudding. Top with another one-third of the banana slices, then another heaping cup of the pudding. Top with the remaining bananas, then vanilla wafers, then pudding. Cover with plastic wrap and refrigerate 6 hours or overnight.
Make the topping: Preheat the oven to 350 degrees F. Spread the coconut on a baking sheet and toast until golden, about 10 minutes. Scoop all of the solid coconut cream from the chilled can of coconut cream (do not scoop out any liquid). Beat the coconut cream, heavy cream and sugar in a large bowl with a mixer on medium-high speed until stiff peaks form, about 2 minutes.
Spread the coconut whipped cream over the pudding and sprinkle with the toasted coconut and reserved lime zest. Refrigerate about 30 minutes before serving.