PIE CRUST: Place flours, sugar, and salt in a bowl, cover and place in the freezer for about 20 minutes to get good and cold.
Add dry mix to a food processor and pulse briefly to combine. Pulse in the butter and shortening just until coarse crumbs form, about 10 seconds. Add water and lemon juice and pulse just until moist crumbs form, about 10 seconds.
Turn the dough onto a work surface and gently shape it into a disk about 5" in diameter. Wrap in plastic and refrigerate at least 1 hour or up to 1 day (or you can freeze them for up to 2 months).
Preheat oven to 400°F Roll out dough and place over a deep dish pie pan, crimping the edges. Prick with fork all over and bake for 12 minutes until golden. Remove from oven and let cool to room temperature.
FILLING: In a saucepan, combine sugar, flour, salt, and milk. Using a whisk, mix well, stirring constantly over medium/med-high heat until the mixture thickens and comes to a boil. Continue whisking while boiling for 1 minute then remove from the heat (but keep burner on).
To the egg yolks, stir in about 1/4 cup of cream to temp the yolks. Slowly whisk the yolk mixture back into the saucepan and cook for 1 more minute, stirring constantly.
Remove from the heat and stir in the butter, extracts, and optional coconut, mixing well. Allow to cool to room temperature, stirring occasionally.
Place the bananas (if using) into the pie crust in a single layer, cutting in half to fit as needed, leaving a little space between. Pour filling over bananas into cooled crust and refrigerate.
CREAM TOPPING: Using an electric mixer and the whip attachment, whip cream to soft peaks. Add remaining ingredients and whip to firm peaks (moving the whisk around while whipping). Spread over filling, piling high. Sprinkle with toasted coconut if desired.
Refrigerate pie for at least 2 hrs before serving.