In a small saucepan over medium heat, heat the orange juice for about 10-12 minutes, stirring occasionally, until reduced by half. Se aside to cool.
In a separate medium saucepan over medium-low heat, whisk together granulated sugar, cornstarch, and baking soda. Slowly whisk in whole milk, making sure there are no lumps. Continue whisking until the mixture is heated through and just begins to steam (do not let it boil), about 5 minutes.
In a small bowl, whisk the egg yolks. While whisking, slowly drizzle in about ¼ cup of the warm milk mixture to temper the eggs (this prevents scrambling).
Pour the tempered egg mixture back into the saucepan with the rest of the milk mixture, stirring constantly.
Keep cooking over medium-low heat, stirring continuously, for 5 to 7 minutes, or until the custard thickens and coats the back of a spoon.
Remove from heat. Immediately whisk in the reduced orange juice, vanilla extract, orange zest, and unsalted butter until smooth and fully combined.
Pour the custard into 3 small serving cups or ramekins. Let them cool at room temperature for about 30 minutes, then cover and refrigerate for at least 3 hours or up to overnight.
When ready to serve, pipe or spoon the whipped topping over each serving.
Garnish with fresh mint and additional orange zest.