Preheat the oven to 350°F (175°C). Line a 12-cup muffin pan with paper liners.
In a large bowl, whisk together the granulated sugar, all-purpose flour, 0.5 cup unsweetened cocoa powder, baking powder, baking soda, and 0.5 teaspoon fine salt until evenly combined.
In a medium bowl, whisk the eggs, whole milk, vegetable oil, and 2 teaspoons vanilla extract until smooth.
Pour the wet mixture into the dry ingredients and whisk just until no dry streaks remain. Carefully add the 0.5 cup boiling water and whisk until the batter is smooth and thin.
Divide the batter evenly among the liners, filling each about two-thirds full.
Bake 18–22 minutes, until the tops spring back when lightly touched and a toothpick inserted in the center comes out with a few moist crumbs.
Cool the cupcakes in the pan for 10 minutes, then transfer to a rack to cool completely, about 45 minutes.
Make the frosting: In a stand mixer (or bowl with a hand mixer), beat the softened unsalted butter on medium-high until creamy and light, 2–3 minutes.
Reduce speed to low and add 0.5 cup unsweetened cocoa powder, the powdered sugar, and 0.25 teaspoon fine salt. Mix until mostly incorporated. Add 1.5 teaspoons vanilla extract and half of the heavy cream, then beat on medium-high until fluffy, 2–3 minutes, adding more cream as needed for a smooth, spreadable consistency.
Frost the completely cooled cupcakes with the chocolate buttercream. Serve at room temperature.