PREP OVEN AND PAN: Preheat the oven to 350°F. Grease a 9 x 13-inch baking pan with butter or nonstick spray.
CREAM BUTTER AND SUGAR: In a large mixing bowl, beat 2/3 cup unsalted butter, softened and 2 cups granulated sugar, and 1/2 teaspoon kosher salt for about 3 minutes, until light and creamy.
ADD EGGS AND LIQUIDS: Beat in 4 large eggs one at a time. Add 2 teaspoons pure vanilla extract and 1 cup whole milk. Mix just until combined.
ADD DRY INGREDIENTS: Add 2 1/4 cups all-purpose flour, 2 teaspoons baking powder, 1/2 teaspoon baking soda, and 3/4 cup cocoa powder. Mix on low speed just until no dry streaks remain.
BAKE: Pour batter into the prepared pan and spread evenly. Bake for 40 minutes, until a toothpick inserted in the center comes out mostly clean.
POKE HOLES: While the cake is still warm, use a straw or the handle of a wooden spoon to poke holes all over the surface, spacing them about 1 inch apart.
CHILL: Transfer the cake to the refrigerator and chill for 30 minutes.
MAKE TRES LECHES MIXTURE: In a medium bowl, whisk together 1 14 ounce can sweetened condensed milk, 1/2 cup evaporated milk, 1/4 cup whole milk, and 1/4 cup cocoa powder until smooth.
SOAK: Slowly pour the chocolate milk mixture evenly over the chilled cake. Allow it to absorb completely.
MAKE WHIPPED CREAM: In a large bowl, beat 2 cups heavy cream, 1/4 cup cocoa powder, and 2 teaspoons pure vanilla extract until stiff peaks form.
TOP AND SERVE: Spread the chocolate whipped cream evenly over the cake. Slice and serve chilled.
Notes
Chill Before Topping: The cake must be cool before adding whipped cream or it will melt.Cocoa Choice: Dutch process cocoa provides a deeper chocolate flavor, but natural cocoa works well too.Pour Slowly: Add the tres leches mixture gradually so it absorbs evenly without pooling.Storage: Store covered in the refrigerator for up to 5 days.Freezing: Not recommended once soaked, as texture will change.