Bring milk to a boil in a 4-qt. nonstick pan. Reduce heat to medium-low; cook, stirring, until very thick, about 5 hours. You should have 1½ cups of thickened milk; let cool to room temperature.
Bring sugar, saffron, rosewater, cardamom, and 1¾ cups water to a boil in a 1-qt. saucepan. Cook, stirring, until sugar dissolves, 8–10 minutes; let cool.
Combine thickened milk, the flours, and baking powder in bowl of a stand mixer fitted with a paddle attachment; mix. Add ghee, yogurt, and egg; continue to beat until dough forms. Cover with plastic wrap and set aside for 10 minutes.
Heat 2" ghee in a 6-qt. pan until a deep-fry thermometer reads 275°. Using wet hands, divide dough into 16 pieces; roll into balls. Working in batches, fry, stirring to keep donuts submerged until cooked through, 12–15 minutes. Using a slotted spoon, transfer to paper towels to drain briefly; transfer hot donuts to syrup and let soak for at least 30 minutes before serving.