In a small bowl, whisk the milk and yeast. Whisk in 2 of the eggs and the vanilla, and set aside.
In the bowl of a stand mixer fitted with the paddle attachment, mix the flour, half of the sugar, and the salt. Add the cold butter cubes, and mix on low speed until they are broken down to the size of small peas, 1–2 minutes. With the mixer running, drizzle in the milk mixture and mix just until a dough forms, about 30 seconds.
Lightly flour a work surface and turn the dough out onto it. Knead gently to form a ball, then flatten it to a disk about 1 inch thick. Wrap tightly in plastic wrap and refrigerate until firm, about 6 hours, or overnight.
About 21⁄2 hours before you plan to serve, retrieve the dough. Line 2 baking sheets with parchment paper. In a bowl, combine the remaining sugars, cardamom, and cinnamon. In a small bowl, beat the remaining egg with a splash of water, and set it aside.
Lightly flour a clean work surface and rolling pin, and roll out the dough into a 12x16-inch rectangle. With one of the short sides facing you, use a spatula or the back of a spoon to spread the softened butter in an even layer over the dough, leaving a 1-inch border along the top and bottom edges of the rectangle. Sprinkle the sugar mixture over the butter, then brush the bare borders with the remaining beaten egg (reserve any remaining egg wash for later). Fold the dough in half so the egg-washed borders meet, then cut it, perpendicular to the fold, into 12 even strips.
Working one at a time, lift each of the strips by their two short ends, and twist in opposite directions while pulling and stretching slightly to make a loose twist. Coil the strip around one of its own ends to make a circular bun, then tuck the outermost end beneath the dough.
Transfer to the baking sheets, leaving 3 inches between each bun. Cover with plastic wrap and set aside until the buns are puffed and soft, 1½ hours.
Preheat the oven to 400°F and place 2 racks near the center with at least 5 inches between them. Brush the surface of each bun with egg wash, then bake, rotating the pans halfway through, until golden brown, 20–25 minutes. Remove and sprinkle with more sugar. Let cool slightly before serving.