In a large bowl, whisk together 2 cups bread flour, 2 tablespoons granulated sugar, 1 teaspoon fine sea salt, and 2 1/4 teaspoons instant yeast. Make a well in the center.
Gradually add 1/2 cup lukewarm whole milk and 1/2 cup cold water, stirring with a wooden spoon until a shaggy dough forms.
Stir in 2 tablespoons melted unsalted butter until fully incorporated. Turn the dough out onto a lightly floured surface and knead for 5–7 minutes, until smooth and elastic.
Shape the dough into a ball. Place it back in the bowl, cover loosely with plastic wrap, and refrigerate for at least 1 hour.
Meanwhile, place 8 ounces of cold unsalted butter between two sheets of parchment paper and roll into a 6x8-inch rectangle. Chill until firm.
On a lightly floured surface, roll the chilled dough into an 8x18-inch rectangle. Place the butter block on one half, leaving a 1/2-inch border around the edges. Fold the other half of the dough over the butter to enclose it.
Roll the dough out again into an 8x18-inch rectangle. Fold into thirds (a single letter fold), wrap in plastic wrap, and chill for 30 minutes.
Repeat: roll into an 8x18-inch rectangle, fold into thirds, wrap, and chill for another 30 minutes.
Roll the dough into a 12x16-inch rectangle, about 1/8 inch thick. Trim the edges and cut into eight 4x6-inch rectangles.
Place one baton of dark chocolate or a small mound of chopped chocolate near one short edge of each rectangle. Roll once toward the center, add a second baton, then finish rolling. Place each roll seam-side down on a parchment-lined baking sheet.
Cover loosely and let the pastries proof in a warm spot for 1 1/2 to 2 hours, until puffy and light.
Preheat the oven to 400°F. Brush the tops of the pastries with the beaten egg.
Bake for 15–20 minutes, until deep golden and hollow-sounding when tapped.
Transfer to a wire rack to cool slightly and serve warm.