In a large mixing bowl, combine 2 cups of flour, sugar, yeast, salt, cinnamon, allspice, nutmeg, and ground cardamom. Whisk these dry ingredients together thoroughly to distribute the yeast and spices evenly—this ensures the yeast will activate uniformly throughout the dough. Set this mixture aside and prepare to add your liquids.
Heat the milk (warmed to about 110°F) and butter together to 120-125°F—this temperature activates the yeast without killing it while allowing the butter to soften and incorporate smoothly. Pour this warm liquid into the dry ingredient mixture from Step 1, stirring until combined. Add the 2 eggs and mix vigorously for about 2 minutes until the batter becomes thick and cohesive. I find this brief vigorous mixing develops the gluten structure that gives hot cross buns their characteristic tender crumb.
Fold the currants, orange zest, and remaining 3.5 cups of flour into the mixture from Step 2 using a stand mixer with a dough hook or by hand with a sturdy wooden spoon. Mix until a smooth, slightly tacky dough forms—it should pull away from the bowl but still feel soft and slightly sticky to the touch. The dough will come together gradually as the flour hydrates, so be patient and avoid adding extra flour; this keeps the buns tender and fluffy.
Transfer the dough from Step 3 to a lightly oiled bowl, turning it to coat all sides. Cover with a damp cloth or plastic wrap and let it rise at room temperature for 30-60 minutes until it roughly doubles in size. While the dough rises, preheat your oven to 350°F and grease a 9x13 inch baking pan. Once risen, divide the dough into 12 equal pieces and roll each into a smooth ball, then arrange them in the prepared pan in a 3x4 grid pattern, leaving just a little space between each bun for expansion.
Cover the pan with a damp cloth and let the buns rise for 20-30 minutes at room temperature until they're puffy and nearly touching each other. While they rise, whisk together 1 egg with 2 tsp water to create an egg wash. Just before baking, brush this egg wash generously over the tops of all the buns—this gives them a beautiful golden-brown shine and helps the icing adhere to the baked surface.
Place the pan in the preheated 350°F oven and bake for 30-32 minutes until the buns are deep golden brown on top and a skewer inserted into the center of one bun comes out clean. The buns should feel firm when lightly pressed and smell wonderfully aromatic with spices and caramelized sugar. Remove the pan from the oven and let the buns cool to room temperature on the pan before piping the icing—this typically takes 20-30 minutes.
While the buns cool, whisk together the sifted powdered sugar, milk, and lemon juice until you have a smooth, pipeable icing with a consistency similar to thick cream—thick enough to hold its shape when piped but thin enough to flow smoothly through a piping bag. Transfer the icing to a piping bag fitted with a small round tip or a squeeze bottle with a thin opening. Once the buns have cooled completely, pipe a thin cross over the top of each bun, starting at the center and extending the lines to the edges. I like to let the lemon juice shine through in the icing—it adds a subtle brightness that balances the warm spices beautifully.