Prepare for baking: Preheat oven to 350°F (175°C). Butter and flour three 6-inch round pans. Whisk together flour, cornstarch, baking powder, and salt in a large bowl, then set aside.
Cream butter and sugar: In a stand mixer with paddle attachment, cream butter and sugar until light and fluffy, about 3 minutes.
Add wet ingredients: Mix in oil and vanilla until combined. Add eggs one at a time, mixing until incorporated before adding the next. Add egg yolks and mix. Scrape bowl down and mix again.
Combine dry and wet ingredients: Alternate adding flour mixture and buttermilk in three additions, mixing on low speed until just combined. Don't overmix.
Bake the layers: Divide batter evenly between prepared pans. Bake for 28-32 minutes until centers spring back when lightly touched and a toothpick comes out clean.
Cool completely: Let layers cool in pans for 5 minutes, then turn out onto wire racks to cool completely before frosting.
Make chocolate ganache: Melt 1/3 cup semisweet chocolate with 1/4 cup milk in microwave for 30 seconds. Stir until smooth and set aside to cool.
Prepare cocoa mixture: Melt 1/4 cup butter and mix with cocoa powder until smooth. Set aside.
Make buttercream: Beat 1 cup room temperature butter until fluffy. Mix in cocoa-butter mixture until combined. Scrape bowl down.
Finish frosting: Add salt and powdered sugar, mixing on low. Beat in cooled chocolate ganache, then add remaining milk 1 tablespoon at a time until silky smooth.
Assemble cake: Place first layer on serving plate. Spread buttercream evenly on top. Add second layer and repeat. Top with third layer and cover entire cake with remaining buttercream. Use spatula to create decorative swirls.