1. Mix milk, sugar, cornstarch and salt in a medium pot. Cook over medium-high heat until mixture comes to a low boil; simmer until it thickens, 2 to 3 minutes. Remove from heat. In a large bowl, beat the 4 yolks; slowly whisk hot milk into the yolks. Pour mixture back into pot. Whisk over medium heat for 1 minute, remove from heat, and stir in 11/2 teaspoons of the vanilla and the cardamom. Pour into separate bowl, cover with plastic wrap and refrigerate 1 hour or until cool.
2. Meanwhile, prepare and bake gingerbread cake mix as per package directions for an 8 x 8-inch cake, adding remaining whole egg and 11/4 cups lukewarm water. Cool completely in the pan on a wire rack.
3. In the bowl of an electric mixer fitted with the whisk attachment, add cream, remaining 1/2 teaspoon vanilla, 2 tablespoons orange juice and 1 tablespoon orange zest. Mix on medium until soft peaks form. Add confectioners sugar and mix on high until stiff peaks form, making sure not to overmix. Store in refrigerator until assembly.
4. To assemble: Cut cake into 1-inch cubes. Place 1/3 of the cake cubes in a trifle dish, followed by 1/3 of the pudding, gingersnaps and whipped cream. Repeat 2 more times. Garnish with gingersnaps and orange zest, if desired. Refrigerate for at least 1 hour to allow flavors to combine before serving.