Place flour, sugar, cardamom, and yeast in the bowl of a standing mixer and mix until combined. Attach dough hook to the mixer. Add milk and melted butter to the flour mixture and mix on low speed until dough comes together, 2-3 minutes. Add salt and continue mixing for another 8 minutes on low-medium speed until dough is soft and pulls away from the sides of the bowl.
Place dough in a large bowl brushed with oil, and toss to coat (the fat will keep the dough from drying out). Cover with plastic wrap and let sit in a warm place or on the counter for 1-2 hours, or until doubled in size. Keep in mind that rising will be slower in cold weather.
To make the filling: In a small bowl, combine soft butter, sugar, and cinnamon until you have a smooth paste.
Shaping the dough (I followed this visual guide): On a lightly floured surface or non-stick silicone baking mat, roll dough out into 35x35cm (14x14-inch) square. Spread butter-sugar mixture onto entire surface, making a very thin layer. Fold dough into thirds like a business letter, then roll again into a rough 35x20cm (14x8-inch) rectangle.
Facing the long edge, cut dough into roughly 2cm wide and 20cm long strips. Twist each strip several times, slightly stretching it as you do so. Grab one end of the twisted strip and coil the dough around your hand twice, then over the top. Coil dough again and tuck the loose end in at the bottom.
Arrange buns on a baking sheet lined with parchment paper (if they’re too crowded, use 2 pans), keeping as much space between them as possible. Cover and let rest for 45-60 minutes or until doubled in size.
Meanwhile, set the oven rack to the middle position and preheat to 350F/180C.
Brush buns with an egg wash, sprinkle with sugar, and bake for 15-20 minutes until golden brown. Allow buns to cool on the baking sheet for 5 minutes, then transfer to a wire rack to cool completely.
Serve warm or at room temperature.
Buns are best the same day they are made, but can be frozen for up to 2 months and reheated in the oven before serving.