Toast the coconut on a rimmed baking sheet in a 300 degree oven. Stir after 6 minutes and every 2 minutes after until golden brown.
Whisk the sugar and cornstarch in a medium saucepan. Add in the coconut milk, half and half and egg yolks and whisk until smooth. Bring to a boil over medium heat, whisking constantly. Boil for 1 minute. The mixture should be thickened. Remove from heat and whisk in the butter, coconut, and vanilla extract, until combined. Cover the pan with plastic wrap, pressing the plastic wrap directly onto the custard for 30 minutes.
Pour the custard into the prepared pie crust and smooth out the top. Refrigerate until set, about 2-3 hours.
Using an electric mixer, beat the heavy whipping cream and powdered sugar together on high speed until stiff peaks form, about 5-7 minutes. Spread the whipped cream evenly over the pie; top with the toasted coconut.