Dry and chill the beef. Pat the tenderloin very dry with paper towels. Season all over with salt and pepper. If you have time, refrigerate it uncovered for 30 to 60 minutes to dry the surface. This helps you get a better sear.
Sear the tenderloin. Heat a large skillet over medium-high heat. Add oil. Sear the tenderloin on all sides until well browned, about 2 minutes per side, including the ends. You are not trying to cook it through, just building flavor.
Transfer to a plate. While the beef is still warm, brush all over with Dijon mustard. Cool to room temperature, then refrigerate while you make the duxelles.

Make the mushroom duxelles. Add mushrooms, shallots, and garlic to a food processor and pulse until finely chopped, like couscous. Work in batches if needed.
In a wide skillet over medium heat, melt butter with olive oil. Add the mushroom mixture and thyme. Cook, stirring often, until the mushrooms release their liquid and then the liquid fully evaporates. Keep going until the mixture is very dry and paste-like, 15 to 25 minutes.
If using wine, add it once the mushrooms look mostly dry, scrape up browned bits, then cook again until the pan looks dry. Season to taste with salt and pepper.
Spread duxelles on a plate to cool completely, then refrigerate until cold. Do not wrap with warm duxelles, it will melt fat, steam the pastry, and invite sogginess.
My doneness check: drag a spoon through the duxelles. If a wet trail fills in, keep cooking. If the trail stays and the mixture looks dry, you are good.
Set up the prosciutto layer. Lay a large sheet of plastic wrap on the counter. Overlap prosciutto slices into a rectangle big enough to wrap the tenderloin, about 8 by 12 inches.
Spread the cold duxelles evenly over the prosciutto in a thin layer, leaving a small border.
Wrap the beef tightly and chill. Place the tenderloin near the bottom edge of the prosciutto rectangle. Use the plastic wrap to roll it up tightly into a log, tucking as you go. Twist the ends like a candy wrapper to really tighten it.
Refrigerate at least 30 minutes, or up to 24 hours. This step is what keeps the Wellington neat and helps the pastry bake evenly.
Wrap in puff pastry. Lightly flour the counter and roll the puff pastry into a rectangle large enough to fully encase the beef log, roughly 12 by 16 inches (or whatever size gets you a comfortable wrap with a sealed seam). If your pastry is smaller or cracks, patch it with trimmed pieces or overlap two sheets and press the seams together.
Unwrap the chilled beef log and place it seam-side down on the pastry. Fold pastry over the beef, sealing the seam with a little water if needed. Trim excess pastry, then pinch to seal the ends. Place seam-side down on a parchment-lined sheet pan.
Refrigerate 15 to 30 minutes while the oven heats. Cold pastry is flaky pastry.
Heat the oven. Set a rack in the middle of the oven. Preheat to 425°F. If you have an extra sheet pan, preheat it too, then set your parchment-lined pan on top of the hot pan right before baking for a stronger bottom crisp.
Egg wash and score. Whisk egg with water. Brush all over the pastry. Use a sharp knife to lightly score a simple crosshatch pattern on top, do not cut all the way through. If you assembled the Wellington far in advance, score it right before baking (not hours earlier) to keep the wrap tight. Sprinkle with flaky salt if you like.

Bake. Bake 35 to 45 minutes, until deeply golden and the center reaches 122 to 125°F for medium-rare. Start checking a little early, since carryover heat depends on thickness and starting temperature. If the pastry is browning too quickly, loosely tent the top with foil for the last 10 minutes.
Rest, then slice. Rest the Wellington 10 to 15 minutes before slicing. For cleaner slices, use a serrated knife to cut through the pastry, then switch to a chef’s knife for the beef, wiping the blade between cuts. Serve while the pastry is crisp and the center is still juicy.