Preheat oven to 350°F (175°C). Line two baking sheets with parchment paper and ensure butter is at room temperature.
In a medium bowl, whisk together flour, cocoa powder, baking soda, and salt until no lumps remain. Set aside.
In a stand mixer with paddle attachment, beat softened butter on medium speed for 1 minute. Add sugar and beat for 2-3 minutes until light and fluffy, scraping down sides as needed.
Beat in the egg until fully combined, then add vanilla extract and mix for another 30 seconds.
With mixer on low, alternately add half the flour mixture, half the milk, remaining flour mixture, then remaining milk, mixing only until no streaks of flour remain. Batter should be thick but scoopable.
Drop rounded tablespoons of dough onto prepared baking sheets, spacing 2 inches apart. Bake for 10-12 minutes until edges are set but centers still look slightly soft. Do not overbake.
Let cookies cool on pan for 5 minutes, then transfer to a wire rack and cool completely for at least 30 minutes before filling.
In a clean bowl, beat softened butter on medium-high for 2 minutes until very light and fluffy. Add powdered sugar one cup at a time on low speed, then add heavy cream, vanilla, and salt. Beat on medium-high for 3-4 minutes until smooth and fluffy.
Turn half the cooled cookies upside down and spread about 1 tablespoon of filling on each, almost to the edges. Top with another cookie, flat side down, and gently press together. Repeat with remaining cookies and filling.