Prep the oven and pan: Heat oven to 375°F (190°C). Lightly grease a 9x13-inch baking dish with olive oil or cooking spray.
Cook the pasta: Boil in well-salted water until just shy of al dente (about 1 minute less than package).
Drain and set aside. Toss with a teaspoon of butter to prevent sticking.
Make the roux: In a large pot over medium heat, melt 6 tablespoons butter. Whisk in flour and cook 1–2 minutes, stirring, until it smells toasty but not browned.
Add dairy gradually: Slowly whisk in milk and cream.
Keep whisking to smooth out any lumps. Bring to a gentle simmer and cook 3–5 minutes until thick enough to coat a spoon.
Season the sauce: Stir in dry mustard, garlic powder, paprika, 1 teaspoon salt, and 1/2 teaspoon pepper. Taste and adjust seasoning.
Add the cheese off heat: Remove pot from heat.
Add cheddar and Gruyère in small handfuls, whisking until melted and smooth. Stir in 2 tablespoons Parmesan. Do not boil after adding cheese.
Combine with pasta: Fold in the drained pasta until evenly coated.
The mixture should be saucy—baking will thicken it.
Transfer to dish: Pour into the prepared baking dish and spread evenly.
Make the topping: Melt 2 tablespoons butter. In a bowl, mix panko, melted butter, remaining Parmesan, a pinch of salt, and a little pepper.
Top and bake: Sprinkle the panko mixture over the pasta. Bake 20–25 minutes until the edges bubble and the top is golden.
Rest before serving: Let the casserole sit 10 minutes so it sets slightly and slices cleanly.