Lower oven to 375 F (190 C) then prepare pasta, onions and mushrooms. Cook pasta accordingly to package direction and drain. Transfer pasta to a large mixing bowl.
In a large pot of boiling salted water, cook the pasta for 10 minutes (it should still be firm as it will continue to cook mixed in cheese sauce when baked. Drain pasta and transfer to an extra-large mixing bowl.
In a large saucepan over medium heat melt 3 tablespoons of butter and add the chopped onions. Add the sage, salt, and pepper to the skillet. Cook onions 2-3 minutes until beginning to soften. (option to caramelize onions if prefer) Add the mushrooms and continue to cook until onions are beginning to golden and mushrooms have softened. Transfer to a plate and set aside.
Using the same skillet reduce heat to low and melt the remaining 4 tablespoons of butter. Whisk in the flour, and continue to stir until all clumps are removed and mixture begins to thicken. Pour in the milk and heavy cream, then sprinkle in the nutmeg.
Increase heat to medium high and just beginning to bubble in the center. Add the shredded sharp cheddar and white cheddar cheese, stirring until melted and thickened. Reduce heat to medium and stir in the butternut squash puree. Once combined and smooth, remove from heat. Pour the creamy cheese mixture over the cooked noodles in the large bowl. Gently stir with rubber spatula to coat the noodles. Then, fold in the onions and mushrooms.
Transfer noodles to a 9x13 baking dish. Stir together topping ingredients in a small bowl and sprinkle over mac and cheese. Place dish on the middle rack of the oven. Bake for 15-18 minutes until the breadcrumbs are slightly golden. Remove pan from oven and serve warm.