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 prepared 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.