In the bowl of a stand mixer, using the paddle attachment, combine 2 cups flour, sugar, yeast, cardamom, and salt.
In saucepan or microwave safe dish, heat milk and butter until warm (120° - 130°).
Add liquids to flour mixture. Blend at low speed until moistened. Add eggs; beat 3 minutes at medium speed.
Switch to the dough hook and mix in the remaining flour a little at a time, to make a soft, slightly sticky dough, add more or less flour as needed. Knead the dough for 5 minutes. Place in greased bowl, turning to grease top. Cover; let rise in warm place until double, about 45 minutes.
While the dough is resting, make the orange sugar filling by mixing the sugar with the orange zest.
Preheat oven to 350°.
Punch down the dough and let it rest 5 minutes. On a lightly floured surface, roll the dough into a 18-inch x 12-inch; rectangle. Spread the butter evenly over the bottom ⅔ of the dough with a rubber spatula or your fingers. Sprinkle the orange sugar evenly over the butter. Fold the dough into thirds like a letter.
Cut dough in to twelve strips, each 6-inch by 1-inch wide with a pizza cutter or dough scraper.
Cut each piece ¾ of the way up horizontally and twist the two ends. Tie the ends in to a knot. (Alternative ways to shape: #1 Twist each strip then wrap each twist around two fingers and tuck the end through the middle of the circle to the bottom. #2 Hold one end of each strip and twist it several times. Start with one end and roll it up like a snail shell and tuck the end underneath.)
Place each bun on a parchment lined baking sheet. Cover with plastic wrap and let rise until double, about 30 minutes.
Brush with the beaten egg, and sprinkle with pearl sugar
Bake about 20 minutes until golden brown. Transfer to a wire rack and let cool on the pan for 10 to 15 minutes.