FOR VANILLA BEAN PUDDING: Heat 3 cups of the milk and 1 cup of half & half in a large saucepan over medium heat until steaming.
While milk mixture is heating, Whisk together the sugar, cornstarch and 1/2 teaspoon salt in a large bowl. Whisk in the beaten egg yolks and the remaining 1/2 cup of milk.
You'll need to temper the eggs. Whisk half of the hot milk into the egg mixture until smooth, then gradually whisk the egg-milk mixture into the saucepan. Cook over medium heat, whisking constantly, until the mixture boils. Continue to cook, whisking constantly, until it has thickened to a pudding-like consistency, 4 to 5 minutes. Remove from the heat and stir in the vanilla extract, bean powder, and butter.
Cool slightly, stirring a few times to prevent a skin from forming. Transfer to a bowl with a tight lid. When cooled enough, place a piece of plastic wrap directly on top of the pudding and refrigerate until completely cooled and thickened, about 4 hours or overnight. Before serving, whisk the pudding vigorously until smooth and creamy.
FOR WHIPPED CREAM: Place your bowl in the freezer for 5 minutes. Add whipping cream, sugar, and vanilla and whip/whisk on high until soft peaks form. Place in refrigerator until ready to use. Before serving, whisk again until fully creamy.
FOR NAPOLEON: Preheat oven to 375 degrees F. Place thawed shells 2 inches apart on a cookie sheet lined with parchment or silicon. Brush with a leftover egg white with 1 tablespoon of water if desired. Sprinkle sugar on tops, if using egg wash. Bake for 15-20 minutes, or until lightly golden brown. Allow to cool and cut into half using serrated knife.
To assemble napoleon, place bottom half of puff pastry shell, then some pudding, assorted fresh fruit, pudding again, then other half of pastry. Top with whipped cream and dust with powdered sugar, if desired. Enjoy!