For the bavarian cream, place the milk in a heavy-bottomed saucepan. Bring the milk to a boil over medium heat. Keeping an eye on the milk, whisk the cornstarch, sugar and salt together in a bowl. Gradually add the eggs and mix until smooth. Slowly add about one-third of the hot milk to the egg mixture while whisking rapidly (this is called tempering the eggs). Make sure to keep whisking quickly or the eggs will heat too quickly and develop lumpy spots. Pour the tempered egg mixture back into the remaining milk.
Place the mixture over medium heat and cook, stirring constantly, until the mixture comes to a boil and thickens. Once thickened, boil for a few seconds longer to make sure the raw starch taste has disappeared (see Note below the recipe). Stir in the vanilla extract. Stir in the butter and continue to stir until it is completely incorporated.
Pour the custard into a bowl and cover with a piece of saran wrap, pressing the wrap directly onto the surface of the custard and let cool completely at room temperature. When cooled completely, whip the heavy cream, powdered sugar, and vanilla to stiff peaks. Fold the whipped cream gently into the pastry cream. Again, press plastic wrap directly on the surface of the bavarian cream and store in the refrigerator. It will keep in the refrigerator for up to 4 days.
Note: If the heat is too high or you are stirring too slowly at the point when the pastry cream reaches a boil, it may lump. If this happens, pass it through a strainer immediately, before it cools.
For the cream puff pastry, preheat the oven to 425 degrees.
Put the water, butter and salt in a saucepan and bring the mixture to a rolling boil. Remove it from the heat and add the flour all at once. Stir vigorously. Return the pan to the burner and cook over medium heat, stirring the entire time, until the mixture forms a ball; this should take only about a minute. When the dough has formed a ball and looks like this. (Photo #1 below)
Remove the pan from the heat and let the mixture cool for about five to ten minutes. It will still feel hot, but you should be able to hold a finger in it for a few seconds.
Transfer the dough to a mixer and beat in the eggs one at a time. This is how the mixture will look after the first egg is added. Don’t worry if the mixture kind of falls apart and looks crumbly. (Photo #2 below)
It will come together as you keep adding the eggs. This is after adding the third egg and mixing. (Photo #3 below)
Continue beating in the eggs one at a time until the mixture is light and fluffy. Continue beating for at least 2 minutes after adding the last egg. The mixture will look something like this. (Photo #4 below)
The dough will be extremely sticky so don’t be alarmed if it is sticking to the beaters like there’s no tomorrow. Just scrape it back off into the bowl.
Now you can form the choux paste into whatever shape you desire. Use a spoon to mound up balls of dough on a baking sheet or put the dough into a pastry bag and pipe it into a desired shape.
I chose the pastry bag option. I fitted a pastry bag with my largest coupler (no tip) and piled the dough into the bag. And I mean piled. You can see that I may have overfilled the bag just a little. It was messy, very messy. So don’t make that same mistake, please. I’m assuming a large ziploc with a hole cut in the corner would help create a specific shape, also. (Photo #5 below)
Pipe the dough onto a parchment or silpat lined baking sheet. I opted for simple “V” shapes for the hearts. You’ll notice there are ridges on the V’s. That’s a quick fix. (Photo #6 below)
Simply wet your fingers and smooth down any ridges or bumps in the dough so the shapes are smooth. (Photo #7 below)
Finally, bake the cream puffs for 15 minutes at 425 degrees and then reduce the temperature to 375 degrees and bake them for an additional 15 minutes. Turn off the oven, open the door a crack, and leave the pastry inside to cool for 30 minutes (if the pastries cool too quickly they will deflate). Remove them from the oven and cool completely before filling. The pastries should puff and brown beautifully while baking. (Photo #8 below)
For the chocolate glaze, melt the butter with the chocolate in the microwave on 50% power. Once completely melted and smooth, stir in the hot water and sugar. Beat with a spoon or fork until the glaze is smooth and soft enough to pour. If the glaze is too thick, thin with hot water or cream.
To assemble the cream puffs, carefully split open the pastry, fill it with a heaping amount of bavarian cream, replace the top and drizzle with the chocolate glaze. It is best to assemble these no longer than two hours in advance so the pastry doesn’t get soggy.