In a medium saucepan, whisk together 2 cups of the milk, the pumpkin puree, and the pumpkin pie spice. Heat over medium-low, whisking occasionally, until it just begins to bubble gently.
In a separate bowl, whisk together the sugar, cornstarch, and salt. Gradually pour in the remaining 1 cup of milk, whisking out any cornstarch lumps. Add the egg yolks and whisk until completely smooth.
Slowly ladle about half of the hot pumpkin mixture into the yolk mixture, whisking constantly to temper the eggs. Then pour that warmed mixture back into the saucepan, whisking the whole time.
Cook over medium heat, whisking constantly, until the mixture comes to a bubble and thickens, about 3 to 4 minutes. Remove from the heat and whisk in the vanilla and butter until the butter melts in.
Chill and Serve
Spoon the pudding into serving glasses or a bowl. Press plastic wrap directly onto the surface to prevent a skin from forming, and chill for about 2 hours.
Serve topped with whipped cream and crushed gingersnaps, or layered in glasses with gingersnaps for a parfait.
Notes
Puree, not pie filling: Use pure pumpkin puree, never pre-sweetened pumpkin pie filling.
Spice blend: No pumpkin pie spice? Use 2 teaspoons cinnamon, ½ teaspoon ginger, ¼ teaspoon nutmeg, and a pinch of cloves.
Storage: Keeps 4 to 5 days in the fridge with plastic wrap pressed onto the surface. Whisk if it separates.
Freezing: Possible but not ideal, as the texture can weep. Stir well after thawing.