Preheat oven to 350°F (175°C). Grease two 9-inch round cake pans, line bottoms with parchment, grease parchment, and set aside.
Sift flour, sugar, cocoa, baking powder, baking soda, and salt together in a large bowl. Whisk until evenly distributed, then make a well in the center.
Whisk eggs, milk, oil, and vanilla in a medium bowl until smooth and fully emulsified.
Pour wet ingredients into the well of dry ingredients. Gently whisk until just combined with no visible flour streaks; batter will be thick at this stage.
Slowly pour hot coffee into batter while whisking constantly. Batter will become thin and liquidy; whisk until smooth and fully incorporated.
Divide batter evenly between prepared pans. Tap pans on counter to release air bubbles. Bake on center rack for 30-35 minutes until a toothpick comes out with a few moist crumbs.
Cool cakes in pans on wire rack for 10 minutes. Run knife around edges, invert onto racks, peel off parchment, and cool completely (1-2 hours).
Beat softened butter in stand mixer on medium speed for 2-3 minutes until light and fluffy. Gradually add sifted powdered sugar and cocoa in three additions, mixing on low after each.
Add heavy cream, vanilla, and salt. Beat on low to combine, then increase to medium-high and whip for 3-4 minutes until light and fluffy. Adjust consistency as needed.
Place one cake layer on serving plate. Spread about 1 cup frosting evenly on top. Add second layer and apply a thin crumb coat all over. Refrigerate 15-20 minutes to set.
Apply remaining frosting generously over top and sides. Smooth with offset spatula, creating swirls or patterns. Refrigerate until ready to serve, bringing to room temperature 30 minutes before serving.