Make the Dough: In a large bowl, whisk together the flour, sugar, yeast, and salt. Add the warm milk and 2 tablespoons of melted butter. Stir until a shaggy dough forms.
Knead the Dough: Turn the dough out onto a lightly floured surface and knead for 5-7 minutes until smooth and elastic. If the dough is too sticky, add a little more flour, one tablespoon at a time.
First Rise: Place the dough in a lightly oiled bowl, turn to coat, and cover with plastic wrap or a clean kitchen towel. Let it rise in a warm place for 1-1.5 hours, or until doubled in size.
Prepare the Butter Block: While the dough is rising, place the cold butter pieces between two sheets of parchment paper. Using a rolling pin, pound and roll the butter into a 6-inch square. Keep it cold.
Laminate the Dough (First Fold): Once the dough has doubled, punch it down to release the air. Roll the dough into a 12-inch square on a lightly floured surface. Place the cold butter block in the center of the dough. Fold the corners of the dough over the butter like an envelope, completely encasing the butter.
Roll and Fold (Turns 1 & 2): Gently roll the dough into a 20x10-inch rectangle. Be careful not to press too hard, or the butter will squeeze out. Fold the dough in thirds, like a letter. This is your first "turn." Wrap in plastic wrap and chill in the refrigerator for 30 minutes. Repeat the rolling and folding process (Turn 2), then chill again for 30 minutes.
Roll and Fold (Turns 3 & 4): Repeat the rolling and folding process two more times (Turns 3 & 4), chilling for 30 minutes after each turn. After the fourth turn, wrap the dough well and chill for at least 2 hours, or preferably overnight.
Shape the Croissants: On a lightly floured surface, roll the chilled dough into a large rectangle, about 1/8 inch thick. Trim the edges to create a clean rectangle. Cut the dough into triangles.
Add Chocolate and Roll: Place a few chocolate pieces or a chocolate baton at the base of each triangle. Gently roll up the dough from the base to the tip, forming a crescent shape.
Second Rise: Place the shaped croissants on a baking sheet lined with parchment paper. Cover loosely with plastic wrap and let rise in a warm place for 1-1.5 hours, or until puffy.
Bake: Preheat your oven to 375°F (190°C). Brush the croissants with the beaten egg. Bake for 18-22 minutes, or until golden brown and cooked through.
Cool and Enjoy: Let the croissants cool slightly on a wire rack before serving. They are best enjoyed warm!