In a small bowl, dissolve the yeast in warm milk and let it sit for about 5 minutes until frothy.
In a large mixing bowl, combine flour, sugar, and salt. Create a well in the center and pour in the yeast mixture. Mix until a dough forms.
Transfer the dough to a floured surface and knead for about 10 minutes until smooth.
Place the dough in a greased bowl, cover, and let it rise in a warm place for about 1 hour, or until doubled in size.
Roll out the risen dough into a large rectangle. Distribute the cold butter pieces over one half of the dough. Fold the other half over the butter and seal the edges.
Roll out the dough again into a rectangle and perform a letter fold (folding into thirds). Repeat this rolling and folding process two more times, chilling the dough for 30 minutes between each fold.
After the final fold, wrap the dough in plastic wrap and refrigerate for about 1 hour.
Roll out the chilled dough into a large rectangle and cut it into triangles. Roll each triangle from the base to the tip to form a crescent shape.
Place the shaped Gipfeli on a baking sheet lined with parchment paper. Cover with a damp cloth and let them rise for another 30 minutes.
Preheat the oven to 200°C (400°F). Brush the Gipfeli with the beaten egg.
Bake for 15-20 minutes until golden brown and puffed.
Allow to cool slightly before serving. Enjoy plain or with your choice of fillings like jam, cheese, or chocolate.