Several hours before baking, remove the eggs and the 1½ cups (3 sticks) butter from the refrigerator so they come to room temperature.
When you begin, bring 1 cup water to a boil and preheat the oven to 350°F (175°C).
Prepare two 9-inch round cake pans: spray with baking spray (for baking) or butter and lightly flour them.
In a large bowl or the bowl of a stand mixer, combine and whisk together: 2 cups all-purpose flour, 2 cups sugar, ¾ cup unsweetened cocoa powder, 2 teaspoons baking powder, 1½ teaspoons baking soda, 1 teaspoon salt, and 1 teaspoon instant espresso powder. Make sure the dry ingredients are evenly mixed and any lumps are broken up.
Add the wet ingredients to the dry mix: 1 cup heavy cream, ½ cup vegetable oil, 2 room-temperature eggs, 2 teaspoons vanilla extract, ½ teaspoon almond extract, and a pinch of salt. Mix on medium speed (or with a hand mixer on medium) until everything is well combined and there are no streaks of flour.
With the mixer running on low, carefully pour in the boiling water in a slow, steady stream until incorporated. Once all the water is added, increase the mixer speed to high and beat the batter for about 1 minute to aerate it.
Divide the batter evenly between the two prepared 9-inch pans and smooth the tops.
Bake on the center rack for 25–35 minutes, or until a toothpick or cake tester inserted in the center comes out clean or with a few moist crumbs (not wet batter).
Remove the pans from the oven and let the cakes cool in the pans for about 10 minutes. Then run a knife around the edges, invert the cakes onto wire racks, and cool completely before frosting.
For the frosting, sift or whisk 1 cup unsweetened cocoa powder in a large bowl to remove lumps.
In the bowl of a stand mixer or with a hand mixer, beat 1½ cups (3 sticks) room-temperature butter together with the sifted cocoa until smooth and well combined. Do not use cold butter.
Add the 5 cups confectioner’s sugar and the ½ cup milk gradually: add about 1 cup confectioner’s sugar, then about 1 tablespoon milk, beat on high for about 1 minute; repeat this sequence (1 cup sugar + ~1 tablespoon milk; beat) until all 5 cups of sugar and the bulk of the ½ cup milk have been incorporated. Adjust the amount of milk as you go—use the ½ cup total as your limit.
Add 2 teaspoons vanilla extract, ½ teaspoon instant espresso, and a pinch of salt to the frosting and beat until fully combined. Taste and adjust texture: if the frosting is too thick, add up to the remaining milk 1 tablespoon at a time; if it is too thin, add small additional amounts of confectioner’s sugar until you reach the desired spreading consistency.
To assemble: place one cooled cake layer on your serving plate, spread a layer of frosting over the top, set the second layer on top, and use the remaining frosting to cover the top and sides of the cake.
If needed, chill the cake briefly (15–30 minutes) to set the frosting before slicing. Store leftovers covered at room temperature for a day or refrigerated for longer storage.