In a small heavy saucepan, combine the sugar, cornstarch and salt. Add milk; stir until smooth. Cook and stir over medium-high heat until thickened and bubbly. Reduce heat to low; cook and stir for 2 minutes longer.
Remove from the heat. Stir a small amount of hot filling into egg yolks; return all to the pan, stirring constantly. Bring to a gentle boil; cook and stir 2 minutes longer. Remove from the heat; stir in the coconut, butter and vanilla. Pour into prepared shell.
In a small bowl, beat the egg whites, cream of tartar and vanilla on medium speed until soft peaks form. Gradually beat in sugar, 1 tablespoon at a time, on high until stiff peaks form. Spread meringue over hot filling, sealing edges to crust. Sprinkle with coconut.
Bake at 350° for 17-20 minutes or until golden brown. Cool on a wire rack for 1 hour. Refrigerate for at least 3 hours before serving. Store leftovers in the refrigerator.