6 slices good-quality white bread, crusts removed, torn into 1/4" to 1/2" pieces
8 tablespoons (1 stick) unsalted butter melted, plus more for dish
1/2 cups milk
cup all-purpose flour
2 teaspoons kosher salt
1/4 teaspoon freshly grated nutmeg
1/4 teaspoon freshly ground black pepper
1/4 teaspoon cayenne pepper
4 1/2 cups (about 18 ounces) grated sharp white cheddar, divided
2 cups (about 8 ounces) grated Gruyere, divided
1 pound elbow macaroni
Heat the oven to 375 degrees. Butter a 3-quart casserole dish; set aside. Place bread pieces in a medium bowl, then toss with the melted butter. Set the breadcrumbs aside. In a medium saucepan set over medium heat, heat milk. Melt remaining 6 tablespoons butter in a high-sided skillet over medium heat. When butter bubbles, add flour. Cook, stirring, 1 minute.
Slowly pour hot milk into flour and butter mixture while whisking. Continue cooking, whisking constantly, for several minutes until the mixture bubbles and becomes thick. Remove pan from the heat. Stir in salt, nutmeg, black pepper, cayenne pepper, 3 cups of cheddar cheese, and 1 1/2 cups Gruyere. Set cheese sauce aside.
Fill a large saucepan with water and bring to a boil. Add macaroni; cook 2 to 3 fewer minutes than the directions on the package, or until outside of pasta is cooked and inside is still chewy. Transfer macaroni to colander, rinse under cold running water, and drain well. Stir macaroni into the reserved cheese sauce.
Pour the mixture into the prepared casserole dish. Sprinkle remaining 1 1/2 cups cheddar and 1/2 cup Gruyere over the top, then scatter breadcrumbs over the cheese. Bake until browned on top, about 30 minutes. Transfer dish to a wire rack to cool for 5 minutes; serve.