For the Dough
½ cup/118 millimetres whole milk
1 package (1/4 ounce/7 grams) active dry yeast
⅓ cup/67 grams granulated sugar, plus a pinch
4 ¼ cups/531 grams all-purpose flour, more as needed
1 ½ teaspoon fine sea salt
1 teaspoon vanilla extract
1 teaspoon grated lemon zest (optional)
½ teaspoon freshly grated nutmeg
4 large eggs, at room temperature, lightly beaten
10 tablespoons/140 grams unsalted butter, at room temperature, plus more for greasing bowls and pans
For the Fudge Filling:
½ cup/100 grams granulated sugar
¾ cup/177 millimetres heavy cream or half-and-half
Pinch kosher salt
6 ounces/170 grams extra bittersweet chocolate, preferably between 66 and 74 percent cocoa, coarsely chopped
8 tablespoons/112 grams/1 stick unsalted butter, diced, at room temperature
2 teaspoons/10 milliliters vanilla extract
For the Chocolate Streusel:
½ cup/60 grams all-purpose flour
3 tablespoons/45 grams granulated sugar
1 ½ tablespoons/11 grams cocoa powder
½ teaspoon kosher salt
4 ½ tablespoons/64 grams unsalted butter, melted
⅓ cup/60 grams mini semisweet chocolate chips
For the Syrup:
⅔ cup/135 grams granulated sugar
1. Prepare the dough: In a small saucepan or a bowl in the microwave, warm the milk until it’s lukewarm but not hot (about 110 degrees). Add yeast and a pinch of sugar and let sit for 5 to 10 minutes, until slightly foamy.
2. In an electric mixer fitted with the dough hook, or in a food processor, mix together flour, 1/3 cup sugar, the salt, the vanilla, the lemon zest (if using) and the nutmeg. (If you don’t have a mixer or processor, use a large bowl and a wooden spoon.) Beat or process in the yeast mixture and eggs until the dough comes together in a soft mass, about 2 minutes. If the dough sticks to the side of the bowl and doesn’t come together, add a tablespoon more flour at a time until it does, beating very well in between additions.
3. Add half the butter and beat or pulse until the dough is smooth and elastic, 3 to 5 minutes, scraping down the sides of the bowl with a spatula as needed. Beat in the rest of the butter and continue to beat or pulse until the dough is smooth and stretchy, another 5 to 7 minutes. Again, if the dough sticks to the sides of the bowl, add additional flour, 1 tablespoon at a time.
4. Butter a clean bowl, form the dough into a ball and roll it around in the bowl so all sides are buttered. Cover the bowl with a clean towel and let it rise in a warm, draft-free place (inside of a turned-off oven with the oven light on is good) until it puffs and rises, about 1 to 2 hours. It may not double in bulk but it should rise.
5. Press the dough down with your hands, re-cover the bowl and refrigerate overnight (or, in a pinch, for at least 4 hours, but the flavour won’t be as developed).
6. Prepare the filling: In a medium saucepan over medium heat, combine sugar, cream and salt. Simmer, stirring occasionally, until sugar completely dissolves, about 5 minutes. Scrape mixture into a bowl. Stir in chocolate, butter and vanilla until smooth. Let cool to room temperature. Filling can be made up to a week ahead and stored, covered, in the fridge. Let come to room temperature before using.
7. Prepare the streusel: In a bowl, stir together flour, sugar, cocoa powder and salt. Stir in melted butter until it is evenly distributed and forms large, moist crumbs. Stir in the chocolate chips. Streusel can be prepared up to 3 days ahead and stored, covered, in the fridge.
8. Prepare the syrup: In a small saucepan, combine sugar and 2/3 cup/158 millimetres water. Bring to a simmer over medium heat, then simmer for 2 minutes, stirring occasionally until the sugar dissolves.
9. Butter two 9-inch loaf pans, then line with parchment paper, leaving 2 inches of paper hanging over on the sides to use as handles later.
10. Remove dough from refrigerator and divide in half. On a floured surface, roll one piece into a 9-by-17-inch rectangle. Spread with half the filling (there’s no need to leave a border). Starting with a long side, roll into a tight coil. Transfer the coil onto a dish towel or piece of plastic wrap and stick it in the freezer for 10 minutes. Repeat with the other piece of dough.
11. Slice one of the dough coils in half lengthwise to expose the filling. Twist the halves together as if you were braiding them, then fold the braid in half so it’s about 9 inches long. Place into a prepared pan, letting it curl around itself if it’s a little too long for the pan. Cover loosely with a clean kitchen towel and let rise in a warm place for 1 to 1 1/2 hours, until puffy (it won’t quite double). Alternatively, you can cover the pans with plastic wrap and let them rise in the refrigerator overnight; bring them back to room temperature for an hour before baking.
12. When you’re ready to bake, heat the oven to 350 degrees. Use your fingers to clump streusel together and scatter all over the tops of the cakes. Transfer to oven and bake until a tester goes into the cakes without any rubbery resistance and comes out clean, 40 to 50 minutes. The cakes will also sound hollow if you unmold them and tap on the bottom. An instant-read thermometer will read between 185 and 210 degrees.
13. As soon as the cakes come out of the oven, use a skewer or paring knife to pierce them all over going all the way to the bottom of the cakes, and then pour the syrup on top of the cakes, making sure to use half the syrup for each cake.
14. Transfer to a wire rack to cool completely before serving.
Watch how to make below: