For the chocolate brioche: stir the milk (or chocolate milk, if using), yeast and 1 tbsp of sugar and let sit 5 minutes. Add the eggs and stir to blend. Sift in the flour, the remaining sugar, cocoa powder and salt and mix (by hand or with a mixer fitted with the paddle attachment) until evenly combined. Add the butter and melted chocolate and mix until blended, then switch to a dough hook (or beat more vigorously by hand) and knead until the dough is soft and smooth, about 5 minutes. Place the dough (it will be very soft) in a lightly oiled bowl, cover, and let sit at room temperature for an hour before chilling for 8 to 24 hours.
For the hazelnut filling: pulse the hazelnuts with the brown sugar in a food processor until finely ground. Add the egg and vanilla and pulse to combine, then add the chocolate chips (if using) and pulse lightly.
For the assembly: on a floured work surface, turn out the dough and roll out to a large rectangle about ½-inch thick. Spread the hazelnut filling over the entire surface of the dough and then roll it up from the longer side. Cut the roll into rounds about 1-inch thick (just like making sticky buns). Lay half of the slices overlapping each other in a greased 8-cup angel food cake tin or bundt pan, overlapping the pieces, and then arrange the remaining slices over the first layer, overlapping. Cover the tin with a tea towel and let the brioche rise for 90 minutes.
Preheat the oven to 175°C. Bake the brioche for about 40 minutes, until a tester inserted in the centre of it comes out clean. Allow the cake to cool for 20 minutes, then turn out on a cooling rack to cool completely.