Generously grease 2, 9x5 inch bread pans.
In a small saucepan, warm the milk and butter until butter melts. In a mixing bowl, combine the bread flour, 2 cups all-purpose flour, yeast, and 1/4 cup sugar. Add water, the milk-butter mixture, egg, and salt to dry ingredients and mix well.
Using a stand mixer fitted with dough hook knead know on low speed until smooth and elastic, about 15 minutes. Remove dough hook, and cover dough with a warm, damp cloth and let rise in a warm draft-free area until doubled in size, about 1 to 1-1/2 hours.
For the chocolate filling: In a medium bowl, stir together the finely chopped chocolate, cinnamon, and 1/4 cup sugar. Using a pastry blender, cut in 1/4 cup chilled butter.
For the streusel topping: In a medium bowl, combine the powdered sugar and 1/4 cup all-purpose flour. Using a pastry blender, cut in 1/4 cup chilled butter until the mixture resembles coarse crumbs.
When the dough has doubled, punch down and cut it into two equal pieces. Loosely shape each piece into a ball. Cover the dough with a warm, damp cloth and let it rest for 10 minutes.
Roll out one portion on a lightly floured surface to form a 15x4-inch rectangle. Sprinkle with half the chocolate filling, roll up to form a long log, and seal the seam. Twist the dough, like wringing out a towel. Bring the two ends together, folding the dough in half. Twist the dough again on itself, in a twisting motion, to form the loaf. Place loaf in prepared pan, cover with warm, damp cloth and let rise until doubled, about 30 minutes. Repeat with second dough ball.
Preheat an oven to 350 F. Brush the loaves with the egg wash, if desired. Sprinkle streusel on top. Bake the loaves for 25 to 30 minutes until the bread is a deep golden brown.