Prepare the Cupcakes:
Preheat your oven to 350°F (175°C) and line a muffin tin with cupcake liners.
In a large mixing bowl, combine flour, sugar, baking powder, baking soda, and salt.
Add the butter and beat on medium speed until the mixture is crumbly.
Add the eggs, one at a time, beating well after each addition.
Mix in the vanilla extract.
In a separate bowl, combine the milk and sour cream.
Add the milk mixture to the batter and beat until smooth and well combined.
Divide the batter evenly among the cupcake liners, filling each about 2/3 full.
Bake for 18-20 minutes, or until a toothpick inserted into the center comes out clean.
Allow the cupcakes to cool completely on a wire rack.
Make the Custard Filling:
In a medium saucepan, heat the milk until it’s just about to boil.
In a separate bowl, whisk together the sugar, cornstarch, and egg yolks.
Slowly pour the hot milk into the egg mixture, whisking constantly to prevent curdling.
Return the mixture to the saucepan and cook over medium heat, stirring constantly, until it thickens and comes to a boil.
Remove from heat and stir in the vanilla extract and butter until smooth.
Transfer the custard to a bowl, cover with plastic wrap (pressed directly onto the surface to prevent a skin from forming), and refrigerate until cool.
Prepare the Chocolate Ganache:
Place the chopped chocolate in a heatproof bowl.
In a small saucepan, heat the heavy cream until it begins to simmer.
Pour the hot cream over the chocolate and let it sit for a minute.
Stir until the chocolate is completely melted and the ganache is smooth.
Let the ganache cool slightly before using.
Assemble the Cupcakes:
Using a small knife, cut a cone-shaped piece out of the center of each cupcake.
Fill a pastry bag (or zip-top bag with a corner snipped off) with the custard and pipe it into the center of each cupcake.
Replace the cut-out pieces of cupcake to cover the filling.
Spoon the ganache over the top of each cupcake, allowing it to drip down the sides.
Let the ganache set before serving.