Preheat your oven to 375°F (approx. 190°C). Line a baking sheet with parchment paper.
Take the puff pastry out of the freezer and set aside to thaw.
Place the mushrooms in the bowl of a food processor and pulse until crumbly, 10-11 times. Do not over process.
Heat 2 tablespoons (30 ml) of the oil in a large skillet over medium-high heat. Add the onion and sauté until soft, 3-4 minutes. Lower the heat to medium and add the garlic. Sauté for an additional 2 minutes.
Add the mushrooms and balsamic vinegar and cook, stirring occasionally, until most of the liquid from the mushrooms has evaporated, 10-12 minutes.
Push the mushroom mixture to the side of the skillet and add 1 tablespoon of oil (15 ml) to the center. Add the water chestnuts, if using, and the thyme, sage, salt, and pepper and sauté until the herbs are fragrant, about 1 minute. Add the spinach and stir until wilted. Incorporate this spinach mixture into the mushroom mixture. Turn off the heat and add more salt and pepper to taste.
Roll out the puff pastry on a lightly floured flat surface so the pastry extends an additional 1-2 inches (2.5-5 cm) in each of the four directions. Transfer to your parchment-lined baking sheet.
Add the mushroom mixture to the center of the pastry and form into a loaf shape. Fold both of the long sides up to meet in the center and pinch to seal the two together. Trim any excess pastry off the two short ends so you’re left with roughly 1 ½ inches (about 4 cm) of pastry on either side. (The trimmed pieces of puff pastry dough can be used to make a decorative braid or design and placed on top of the Wellington just before baking.) Take the two short ends and fold them up and over the top of the Wellington. Gently turn the loaf over so all seams are now underneath.
Using a very sharp knife, score two rows of 1-inch (2.5-cm) diagonal slits across the top of the Wellington. Pierce a few small holes in each side, as well.
Combine the remaining ½ tablespoon of oil and the milk in a small bowl and brush a light coating over the entire surface of the Wellington.
Bake for 40-45 minutes, or until golden brown, rotating the baking sheet at the 20-minute mark. Let rest 10 minutes before slicing into thick slices.