In a small bowl, combine 2 1/8 ounces (1/4 cup or 2 fluid ounces) milk with arrowroot starch and whisk until smooth.
In a seperate, medium heat-safe bowl, combine the remaining 19 1/8 ounces (2 1/4 cups or 18 fluid ounces) milk, sugar, and salt and whisk until smooth. Set over a pot of boiling water to form a double-boiler and heat, whisking occasionally, until the mixture begins to foam on the surface.
While whisking, slowly pour the egg yolks into the steaming milk mixture, continuing to whisk until smooth. Repeat with the arrowroot mixture, whisking constantly.
Continue to cook custard, stirring very frequently*** and scraping down the bottom and sides of the bowl as you stir. Whisk more often as the custard begins to thicken, cooking until custard holds its shape for a few seconds when whisk is lifted before settling back into the mixture.
Remove from heat and whisk in butter until fully incorporated. Whisk in vanilla extract, coconut extract, and coconut flakes.
Pour custard into pie crust, cover surface directly with plastic wrap, and refrigerate until set (at least a few hours) before topping with whipped cream.
In the bowl of a stand mixer fitted with the whisk attachment, or using a bowl and handheld electric mixer, beat the cream on medium-high speed until thickened. Add the sugar, coconut extract, and vanilla extract and continue to beat to stiff peaks.
Use an offset spatula to spread onto pie, or pipe on with a piping bag. Sprinkle with toasted coconut flakes and serve.
*Prep time includes chilling time
**To toast coconut flakes, spread out on a baking sheet and cook in a 325ºF oven for 7-10 minutes, until golden-brown. Allow to cool and crisp up before using.
***You don’t want to stir the mixture nonstop, but you do want to stir it about every 30 seconds or so, so don’t walk away from it!