For the croissant dough: In the bowl of your stand mixer, combine the flour, yeast, sugar and salt, then whisk together. Add 2 tablespoons of room temperature butter and beat with the paddle attachment. Mix on low speed until combined and the butter is no longer visible. Add the milk. Mix on low speed until the dough comes together, then switch to the dough hook. Knead on medium-high until the dough comes together into a smooth but still slightly loose ball, about 5 minutes. Remove from the mixer, then pat into a rectangle and wrap in plastic wrap. Let rest in the refrigerator for 1 hour.
When the dough is almost done resting, make a rectangle of butter! Smush the remaining 2 1/2 sticks butter together into a rustic rectangle and dust all over with flour. Place it between two pieces of parchment paper (or butter wrappers) and press or roll it into a 6-by-8-inch rectangle. Roll the dough on a floured work surface to about 10 by 20 inches. Lay the butter rectangle in the center and fold one end over the butter. Fold the second end over the top, like folding a letter. This is the first turn. Wrap in plastic and chill 30 minutes.
For the chocolate croissants: Unwrap the dough and set one straight edge closest to you. Roll to about 10 by 20 inches and fold the short ends in to meet in the center, then fold closed, like a book. (This is the second turn.) Wrap and chill 30 minutes, then complete another book turn. Wrap and chill for 30 minutes after the third turn. Complete one more book turn. Wrap and chill at least 2 hours or up to overnight.
Beat the egg. Unwrap the dough and cut in half. Line 2 baking sheets with parchment paper. Working with half of the dough at a time, roll into a 10-by-14-inch rectangle and trim the edges with a pizza wheel to even it out. Cut into 6 rectangles by cutting it in half vertically, and then in thirds horizontally. Brush the rectangles with the egg wash. Lay a 1/2-ounce chocolate bar in the center of each rectangle, arranging it parallel to the short ends of the rectangle. Fold one end over the chocolate, and then the other end over that, again like a letter. Place seam-side down on one of the prepared baking sheets. Repeat with the remaining dough and chocolate. Spray a piece of plastic wrap with cooking spray and cover the croissants loosely. Let rise at room temperature until light, puffy and increased in size by about half, about 1 1/2 hours.
Preheat the oven to 375 degrees F.
Brush the croissants generously with the egg wash. Bake, rotating the baking sheets from top to bottom halfway through, until puffed and deep golden, 20 to 25 minutes. Let cool slightly on a rack.