Preheat oven to 400°F. Line two baking sheets with parchment paper and set aside.
For the filling, in a saucepan, combine heavy cream, sugar and salt. Set over medium-low heat and bring to a slight simmer. Remove from the heat and stir in the chocolate, butter and vanilla until melted through and smooth and glossy. Transfer to a bowl and set aside to cool.
For the streusel topping, in a bowl, whisk together the flour, sugar, cocoa powder and salt. Add the butter and stir until coarse crumbs form. Stir in the chocolate chips and then set aside.
To make the syrup, in a saucepan, combine the sugar and water. Cook over medium heat until the sugar has dissolved and the mixture has come up to a simmer. Transfer to a bowl and set aside to cool.
Unfold one puff pastry sheet at a time and roll out into a slightly larger rectangle. Add half of the filling mixture and spread out as evenly as possible. Sprinkle with half of the streusel topping, trying your best to coat it evenly. Press the filling a bit to make sure it sticks. Then cut into 8 even strips. Grab one strip at a time and turn both ends to create a twist. Place onto one of the prepared baking sheets. Continue this until all are formed and place 8 strips to a baking sheet. It will be a messy job and some of the streusel might fall out but that's okay. Trust the process.
Repeat this process with the second puff pastry sheet and the remaining filling and streusel. Once done, brush the exposed puff pastry parts with egg wash. Bake until golden brown and puffed up, about 18 to 20 minutes. Remove from the oven and immediately brush the twists with the syrup. Allow to cool and then serve and enjoy!