01 - Preheat oven to 400°F. Line a baking sheet with parchment paper.
02 - Toss butternut squash cubes with 1 tablespoon olive oil, salt, and pepper. Spread on the baking sheet and roast for 25–30 minutes, stirring once, until tender and lightly caramelized. Set aside.
03 - In a large skillet, heat the remaining 1 tablespoon olive oil over medium-high heat. Add onion and garlic; sauté for 2–3 minutes until translucent.
04 - Add mushrooms, season with salt, pepper, thyme, and oregano. Sauté for 6–8 minutes, until they release moisture and begin to brown. Add spinach and cook for another 2–3 minutes until wilted. Remove from heat.
05 - In a saucepan, melt butter over medium heat. Whisk in flour and cook for 1 minute. Gradually whisk in milk, stirring constantly until thickened, about 5 minutes. Season with salt, pepper, and a pinch of nutmeg (if using). Stir in half the Parmesan cheese; remove from heat.
06 - Lower oven temperature to 375°F.
07 - Spread a thin layer of béchamel on the bottom of a 9x13-inch baking dish. Layer noodles, half the roasted butternut squash, half the mushroom-spinach mixture, half the ricotta cheese spread gently, a third of the béchamel sauce, and sprinkle with mozzarella and some Parmesan. Repeat layers once more. Finish with a final layer of noodles, remaining béchamel, and top generously with mozzarella and Parmesan.
08 - Cover with foil and bake for 25 minutes.
09 - Remove foil and bake for another 15–20 minutes until golden and bubbling. Let rest 10–15 minutes before slicing. Garnish with fresh basil, if desired.