In a bowl, combine warm milk and sugar. Sprinkle yeast over the mixture and let it sit for 5-10 minutes until foamy. In a large bowl, mix flour and salt. Add the yeast mixture and knead until a soft dough forms. Cover and refrigerate for 1 hour.
Roll out the chilled dough on a floured surface into a rectangle. Place slices of cold butter on two-thirds of the dough. Fold the uncovered third over the butter, then fold the remaining third over the center. This creates layers. Chill for 30 minutes. Repeat the folding process 3-4 times, chilling between each fold.
Roll out the laminated dough into a large rectangle. Cut into triangles. Roll each triangle tightly, starting from the wider end. Place on a baking sheet lined with parchment paper.
Allow the shaped croissants to proof at room temperature until doubled in size. Preheat the oven to 400 F (200 C). Brush the croissants with beaten egg for a golden finish. Bake for 20-25 minutes or until deeply golden brown.
Allow the croissants to cool slightly before serving.