Prepare bread dough: In a large bowl, mix together flour, sugar, salt, and instant yeast. Stir in milk until combined, then turn out dough onto a lightly floured surface.
Knead: Knead (with your hands or a stand mixer) until the dough comes together and becomes slightly elastic (about 5 minutes). Stretch the dough out into a small log and place small cubes of butter on top (or add directly to stand mixer). Roll up the dough and continue kneading. It will be very greasy at first, but just continue kneading and the dough will absorb the butter and become smooth.
When ready, the dough should be smooth and just slightly sticky, but it shouldn't stick to your hands. (You can use the Windowpane Test to see if enough gluten has developed. You can also test the elasticity by poking the dough -- it should bounce back.) This should take about 15-20 minutes of kneading by hand, or about 10 minutes in a stand mixer. If using a stand mixer, check the dough often since it is possible to over-mix the dough.
Proof: Roll your dough into a ball and place in a large greased bowl. Place a tea towel or plastic wrap over the bowl and let the dough rest until doubled in size. You can place the bowl in the oven if your oven has a "proof" setting, or just turn the oven light on. You can also leave it out at room temperature, but your rise may take longer. The warmer the environment, the faster it will rise. (Don't rush it though. Flavors deepen as the dough proofs.)
Make chocolate sheet: Meanwhile, prepare the chocolate sheet. In a microwave safe bowl, mix together flour, cocoa powder, and sugar. Add butter in chunks. Pour in 1/3 of the milk and stir. Pour in another 1/3, stir, add remaining milk and stir again. Microwave 1 minute. Mix to form a dough.
Allow the chocolate mixture to cool for a few minutes, then place in the center of a large piece of plastic wrap. Fold the edges of the wrap into a square shape over the chocolate mixture. Use a rolling pin to roll the mixture out into a square. Place in the fridge until ready to use.
Check bread dough: My dough usually takes about 1 ½ - 2 hours to proof on the kitchen counter. To test if it is done, poke a hole in the center of the dough with your finger. If the hole doesn't close back up, it's ready.
Assemble loaf: Take the chocolate sheet out from the fridge. Punch down the dough and flip onto a non-stick or floured surface. Roll out into a rectangle and place the chocolate sheet in the center. Fold the rectangle into thirds, with one layer on top of the other. Roll out, then fold into thirds again. Cover in plastic wrap and place in fridge for 30 minutes.
Roll the dough out into a rectangle again. On one half of the rectangle, cut strips about 3/4-inch wide. Starting from the opposite end of the rectangle, roll halfway to the strips you cut. Pick up each strip and wrap it around the rolled up dough to form a loaf. Place in parchment-lined loaf pan, cover with plastic wrap or towel, and let the dough rest until doubled in size. This could take 1-4 hours, depending on temperature.
Preheat oven to 350°F. Use a pastry brush to brush the top of the loaf with the "egg" wash. Bake for 35 minutes. Remove from loaf pan and let cool on a wire rack.