Preheat oven to 425 degrees.
In a large saucepan or Dutch oven, bring water and butter to a rolling boil. Stir in the flour and salt until the mixture forms a ball.
Transfer the dough to a stand mixer, and mix for a minute or two, until the dough is lukewarm and most of the steam has escaped. Beat in the eggs, one at a time, mixing well after each addition.
Spoon or pipe tablespoons of dough onto parchment lined baking sheets. Bake for 20-25 minutes, or until puffs are golden brown. Turn off the oven. When puffs are cool enough to handle, poke a hole in the bottom of each cream puff with a toothpick. Return the cream puffs to the oven, leaving the door slightly ajar, for another 20-30 minutes to dry the centers out completely.
Allow shells to cool completely. Meanwhile, make the filling: combine the instant vanilla pudding, 1 cup of heavy cream, and the milk in a large bowl. Whisk until smooth. Cover and refrigerate.
Beat the remaining 1 cup of cream with 2 tablespoons of sugar until stiff peaks form. Fold the whipped cream into the pudding mixture.
Split the cream puff shells in half and fill, or poke a hole in the bottom of the cream puff with a piping tip and pipe in a generous amount of filling. Serve within 1-2 hours of filling for best flavor and texture.