Preheat the oven to 400°F and line a large baking sheet with parchment paper.
Add the water, butter, and salt to a medium saucepan. Bring to a full boil over medium-high heat.
Add the flour all at once and stir vigorously until the mixture forms a smooth ball and pulls away from the sides of the saucepan.
Continue cooking and stirring for another 1 to 2 minutes.
Remove from the heat and cool for approximately 5 minutes.
Add the eggs one at a time, beating thoroughly after each addition until the dough becomes smooth and glossy.
Drop generous 2-tablespoon mounds of dough onto the prepared baking sheet, leaving about 2 inches between them.
Bake at 400°F for 30 to 35 minutes, or until puffed, firm, and deep golden brown. Do not open the oven while the pastries are rising.
Remove from the oven and carefully poke a small hole in each cream puff to release steam.
Transfer to a wire rack and cool completely.
Beat the softened cream cheese until smooth.
Gradually beat in the cold milk.
Add the instant vanilla pudding mix and beat for about 2 minutes, until thick and creamy.
Refrigerate the filling for 10 to 15 minutes if needed to help it firm up.
Slice each cooled cream puff horizontally and generously spoon or pipe the vanilla filling inside.
Replace the tops and dust with powdered sugar immediately before serving.