1. For the cookies: Preheat oven to 350°F. Sift together flour, baking powder, and baking soda in a medium bowl and set aside. Put sugar, margarine, cocoa, and salt in bowl of standing mixer and beat on medium speed until fluffy. Add eggs and vanilla and continue to beat. Add half the milk, then half the flour mixture, beating after each addition until smooth; repeat with remaining milk and flour mixture. Spoon or pipe batter onto parchment-lined baking sheets, making 3" rounds 2" apart. Bake until cookies are set, about 12 minutes. Allow to cool, then remove from parchment.
2. For the fudge icing: Melt bittersweet and semi-sweet chocolates and butter in the top of a double boiler over simmering water over medium heat. Add confectioners' sugar, corn syrup, vanilla, salt, and 6 Tbsp. boiling water and mix to a smooth, stiff paste with a rubber spatula. Thin icing with up to 8 Tbsp. more boiling water. Icing should fall from a spoon in thick ribbons. Keep icing warm in a double boiler over low heat.
3. For the buttercream icing: Put sugar, butter, shortening, milk, vanilla, and salt in the bowl of a standing mixer. Beat on low speed to mix, then increase to medium and beat until light and fluffy.
4. Using a metal spatula, spread about 1 tbsp. of warm fudge icing on half of the flat side of each cookie. Spread the other half of each cookie with 1 heaping tbsp. buttercream icing.