In the bowl of an electric mixer, combine flour, margarine, sugars, salt, eggs, and yolks. Add yeast/water mixer and mix to combine. Let dough rise for 1 hour. The dough will be sticky.
Prepare the filling. In a medium bowl, combine cocoa, sugar, water, egg, pudding powder, and margarine, and mix with a spoon. Set aside.
Prepare the streusel crumbs, if using. In the bowl of an electric mixer, or by hand, combine margarine, flour, and sugar and mix or knead to form crumbs. Set aside.
Preheat oven to 350°F. Line a baking sheet with parchment paper.
To assemble, divide dough into 4 equals parts. Roll out each part on a floured surface into an approximately 6-inch by 18-inch rectangle. Spread filling evenly over doughs and roll each up into a long strip.
Cut strips into 1½-inch pieces. Line the buns in rows on prepared baking sheet, leaving ¼-inch space between each piece. Sprinkle with streusel crumbs.
Bake for 30-45 minutes, until golden brown. I like to lift out one bun to make sure the bottom is not raw before removing from oven.