In a large mixing bowl, combine the all-purpose flour, cocoa powder, granulated sugar, and cold salted butter. Use a pastry cutter or your fingers to mix the butter into the dry ingredients until the mixture resembles coarse crumbs.
Add cold water, one tablespoon at a time, until the dough comes together. Divide the dough into two equal disks, wrap them in plastic wrap, and refrigerate for at least 30 minutes.
In a medium saucepan over low heat, combine the semi-sweet chocolate chips, cocoa powder, cubed butter, whole milk or cream, and vanilla extract. Stir until melted and smooth. Remove from heat and let it cool slightly.
Preheat your oven to 350°F (175°C). On a floured surface, roll out one disk of dough to about 1/8 inch thick. Cut the dough into rectangles, approximately 3x4 inches.
Place half of the rectangles on a lined baking sheet. Spoon a tablespoon of the chocolate filling onto each rectangle, leaving a border around the edges. Top with the remaining dough rectangles, pressing down the edges to seal.
Brush the tops of the Pop Tarts with the beaten egg. Use a fork to poke holes in the top of each Pop Tart for steam to escape. Sprinkle with coarse salt or sugar if desired. Bake in the preheated oven for 20-25 minutes, or until golden brown.
While the Pop Tarts are baking, prepare the icing. In a medium bowl, combine the powdered sugar, cocoa powder, vanilla extract, and enough milk to achieve a smooth consistency. Set aside.
Once the Pop Tarts are out of the oven and cooled slightly, drizzle the melted chocolate over the top and finish with the icing. Allow the icing to set before serving.