Start with a fully baked and cooled pie crust. You can bake it a day ahead to save time. I like wrapping it in plastic overnight so it stays crisp and ready for the filling.
In a medium saucepan, whisk together cornstarch, sugar, and salt. Add a small amount of milk and mix until smooth, then whisk in egg yolks. Slowly add remaining milk and cream, whisking constantly to prevent lumps.
Place the saucepan over medium-high heat and stir constantly until the mixture reaches a gentle boil. Reduce heat and cook for 1–2 minutes until thickened. Remove from heat, then stir in vanilla and butter for that luscious, silky texture.
Pour the warm custard into the cooled pie crust. Smooth the surface with a spatula, then press plastic wrap directly onto the custard to prevent a skin from forming. Chill in the fridge for at least 3–4 hours.
In a mixing bowl, combine heavy cream, sugar, optional pudding powder, and vanilla. Beat until soft peaks form, then spread generously over the chilled pie just before serving.