Heat the milk and 1/4 cup sugar in a large sauce pan over medium heat. Do not let it boil.
In a bowl, whisk the 1/2 cup of sugar, cornstarch, semolina, and salt.
In a large bowl, beat the eggs until fully combined.
Beat in the semolina mixture, and keep beating. After 3 minutes, it should be thick and pale yellow.
Bring the milk to just below a boil, then reduce to low heat.
Slowly add 1/4 cup of the milk at a time to the egg mixture, while constantly whisking (or beating on slow speed with a hand mixer) . Do this until you have added 2 cups of milk. There should be no clumps.
Stir in the egg mixture into the milk and cook over medium-low heat while constantly stirring.
Once this comes to a boil, it's done cooking and should be at a perfect consistency.
Remove from heat.
Stir in the butter, vanilla, and orange zest.
Let cool at least 10 minutes before pouring.