Preheat the oven to 340°F (171°C). Grease two 6-inch round cake pans, line the bottoms with parchment, and lightly flour the sides.
Bloom the cocoa: Stir the espresso powder into the very hot milk until dissolved. Whisk in the natural cocoa powder until the mixture looks smooth and shiny. Set aside to cool slightly, 3–5 minutes.
In a medium bowl, whisk together the flour, baking powder, baking soda, salt, and cinnamon (if using).
In a large bowl, whisk the sugar, oil, eggs, and vanilla until lightly foamy, about 30 seconds. Whisk in the sour cream until smooth, then whisk in the cocoa-milk mixture until fully combined.
Add the dry ingredients in two additions, folding gently with a spatula just until no dry streaks remain. Let the batter rest for 5 minutes to hydrate the cocoa and flour.
Divide the batter evenly between the pans (tapping each pan firmly on the counter to release large air bubbles). Bake for 22–27 minutes, or until the centers spring back when touched and a toothpick comes out with a few moist crumbs.
Cool the cakes in the pans for 10 minutes. Turn out onto a wire rack, peel off parchment, and cool completely before frosting.
Make the frosting: In a small bowl, stir the Dutch-process cocoa with 2 tablespoons warm milk to form a smooth paste. In a mixer fitted with the paddle, beat the softened butter on medium speed until creamy and light, 2–3 minutes. Add powdered sugar in two additions with the vanilla and 1 tablespoon milk, mixing on low until incorporated. Beat in the cocoa paste, then increase speed to medium-high and whip until fluffy, 1–2 minutes. Adjust consistency with milk, 1 teaspoon at a time, as needed.
Assemble: Place one cake layer on a stand. Spread about 3/4 cup frosting over the top. Set the second layer on top. Apply a thin crumb coat around the sides and top; chill 10 minutes to set. Finish with a thicker, swoopy coat of frosting and any simple garnish you like (chocolate shavings or sprinkles). Slice and serve.