In a small saucepan fitted with a thermometer bring milk to 110 degrees F over medium heat.
Meanwhile, combine 2 ¾ cup flour, sugar, yeast and salt in the bowl of a stand mixer.
When milk reaches temperature remove from heat and slowly pour down the side of the bowl with mixer running on low.
When combined increase speed and continue turning until dough comes together in a ball in the middle of the mixer. Then, either switch to a dough hook or knead by hand 8 minutes or until smooth and elastic adding as much of the remaining ¼ cup flour as necessary to keep from sticking.
Place croissant dough in a lightly greased bowl and refrigerate at least 1 hour.
While dough is chilling make butter square. Lay down a large sheet of parchment paper and sprinkle 1 tablespoon flour in the middle. Place butter over flour and sprinkle remaining 1 tablespoon flour over top. Then place another sheet of parchment to cover. To bring together and slightly soften the butter whack it a few times with a heavy rolling pin. Then roll into an 8" square and refrigerate at least 1 hour.
Once butter and dough are fully chilled roll dough into an 11" square on lightly floured surface. Place the chilled butter square diagonally (like a diamond) in the middle of the dough square.
*it is CRUCIAL that the butter and the dough do not mix together during any of the next steps so if either are starting to soften or warm up at any time immediately place back in the fridge to chill before proceeding*
Fold the corners of the chilled dough up over the butter bringing the points together in the center. Pinch all seams to seal then starting from the center and working outward roll out to a 14 inch square, dusting with extra flour as needed to prevent sticking. Fold the dough in thirds, like a business letter, to form a rectangle then fold in thirds again to form a square. Wrap in parchment and refrigerate at least 2 hours.
Roll chilled square out again to a 14 inch square using a heavy rolling pin and your strength and again fold in thirds to form a rectangle and in thirds again to form a square before refrigerating again for at least 2 hours.
Make the croissants
Once fully chilled and rested roll dough out into a large 20" square. If still chilled after rolling continue otherwise refrigerate again until chilled and firm. Cut square in half then cut each half into 6 cross sections (cut in half horizontally and then cut each half into 3 even pieces).
Working with 1 rectangle at a time, sprinkle a tablespoon of chocolate into a small mound at one end then roll the dough up around the chocolate and place, seam side down on baking sheets lined with parchment paper. Cover loosely with greased plastic wrap and let rise slowly in the refrigerator, 10 to 16 hours.
Preheat oven to 400 degrees Fahrenheit and brush croissants with egg. Then bake until golden brown and puffy, 18 - 22 minutes, rotating sheets halfway through.
Drizzle with chocolate or dust with powdered sugar if desired and serve warm or at room temperature.