In a small bowl, combine the warmed milk, instant yeast, and granulated sugar. Stir gently and let sit for about 5-10 minutes until frothy.
In a large mixing bowl, whisk together the all-purpose flour and salt. Create a well in the center and add the yeast mixture along with the room temperature butter. Mix until a rough dough forms.
Transfer the dough onto a lightly floured surface and knead for about 5-7 minutes until smooth and elastic. Place in a greased bowl, cover with plastic wrap, and let rise in a warm place for about 1 hour or until doubled in size.
Prepare the butter layer by placing the chilled, sliced butter between two sheets of parchment paper and pounding it into a rectangle about 1/2 inch thick. Refrigerate until dough is ready.
Once the dough has risen, punch it down and roll it out into a rectangle about 1/4 inch thick. Place the chilled butter layer in the center and fold the dough over it, sealing the edges. Roll out again into a larger rectangle, fold into thirds, and refrigerate for 30 minutes. Repeat this rolling and folding two more times, chilling in between.
After the final fold, roll the dough out to about 1/4 inch thick. Cut into long triangles. Starting from the base of each triangle, roll it up tightly towards the tip and place on a baking sheet lined with parchment paper, ensuring the tip is tucked underneath.
Cover the croissants with plastic wrap and let them proof for about 1 hour, or until puffed up noticeably.
Preheat your oven to 400°F (200°C). In a small bowl, whisk together the whole egg and 2 tablespoons of milk. Brush this egg wash over each croissant.
Bake the croissants for 15-20 minutes or until golden brown and flaky. Enjoy the heavenly aromas!