Heat milk in medium saucepan until hot but not boiling.
While milk is heating, add sugar and cornstarch to mixing bowl. Whisk together.
With an electric mixer or by hand, whisk egg yolks into sugar mixture until pale yellow.
Whisk in orange zest, orange juice, and vanilla.
Remove milk from heat.
While whisking/mixing on low, very slowly pour heated milk into egg mixture. Mix slowly until combined.
Pour mixture back into sauce pan and place over medium heat.
Heat and whisk continuously for 5 minutes, until custard has thickened to consistency of thick pudding.
Once thick, remove from heat and whisk in butter.
Pour custard into large bowl. Cover with plastic wrap, pressing plastic wrap onto top of custard to prevent skin from forming.
Chill for at least 4 hours before serving.