Preheat your oven to 400°F (200°C). Place the peeled, deseeded, and chopped butternut squash on a large baking sheet. Drizzle with olive oil and toss to coat. Sprinkle with kosher salt and black pepper as desired. Roast in the oven for 20–30 minutes, turning once halfway, until the squash is fork-tender. Once roasting is finished, reduce the oven temperature to 350°F (175°C).
While the squash is roasting, bring a pot of salted water to a boil. Add elbow macaroni and cook according to the package instructions until al dente. Drain well and set aside until needed.
Transfer the roasted butternut squash from Step 1 to a food processor or blender. Blend until completely smooth. Add in 1/2 cup of the milk and blend again to achieve a creamy, thinned purée. I find this step helps the squash integrate seamlessly into the cheese sauce for a velvety texture.
In a large skillet over medium heat, melt the butter. Once melted, whisk in the flour and nutmeg. Cook, whisking constantly, for 2–3 minutes until the mixture is fragrant and just beginning to brown slightly. Gradually add the remaining 2 cups of milk, whisking to make a smooth sauce. Turn the heat to high and bring to a gentle boil, continuing to whisk until the sauce thickens. Reduce the heat to low and whisk in the butternut squash purée from Step 3, followed by the chopped fresh rosemary. Add the drained elbow macaroni from Step 2 and stir until all noodles are well coated in sauce. Season with kosher salt and black pepper to taste. I like to taste the sauce here and adjust the salt, or even add a pinch more nutmeg for extra warmth.
Grease a 2-quart casserole dish. Spoon half of the macaroni and cheese mixture from Step 4 into the dish. Sprinkle half of the aged white cheddar and half of the sharp cheddar cheese over the noodles. Add the remaining macaroni mixture on top, then cover with the rest of the aged cheddar and sharp cheddar. Sprinkle the whole wheat breadcrumbs evenly over the entire surface.
Place the assembled casserole in the oven at 350°F (175°C) and bake for 25–30 minutes, or until the macaroni and cheese is bubbling and the breadcrumbs are golden brown. Remove from the oven and allow it to rest for 5 minutes before serving. For an extra touch, I sometimes broil the top for 1-2 minutes at the end for a super crispy crust.