In a small bowl, combine warm milk, sugar, and yeast. Let it sit 5–10 minutes until foamy.
In a large mixing bowl, whisk together flour and salt. Add yeast mixture and combine until it forms a dough.
Knead dough briefly until smooth, cover, and let rise for about 1 hour until doubled in size.
Roll dough into a large rectangle. Spread the cold butter evenly over two-thirds of the dough, then fold dough into thirds, like folding a letter.
Rotate dough 90 degrees, roll out again, and fold into thirds. Refrigerate dough for 30 minutes.
Repeat the rolling, folding, and chilling process two more times. Chill between each fold.
After final chilling, roll dough out into a rectangle and cut into triangular shapes. Roll each triangle into the classic Gipfeli (crescent) shape.
Place Gipfeli on baking tray lined with parchment paper. Cover lightly and let rise 30 minutes.
Preheat oven to 200°C (400°F). Brush Gipfeli lightly with egg wash.
Bake 15–20 minutes, or until golden and flaky. Cool slightly before serving.