Can be prepared and put into baking dish w/o crumb topping 1 day ahead, covered and refrigerated. Bring to room temperature before baking.
½ c. (1 stick) plus 2 T. unsalted butter
1/3 c. plus 1 T. flour
5 c. milk
1# mild cheddar cheese, shredded (about 4 cups)
8 oz. Fontina cheese, rind removed, shredded
¾ c. Parmesan cheese
2 t. each Dijon mustard and salt
½ tsp. cayenne pepper, or to taste
2# penne rigati pasta
1 c. fresh breadcrumbs
Bring a large pot of salted water to boil for the pasta. Meanwhile, melt 6 T. of the butter in a 2-qt. saucepan over medium heat. Whisk in flour until blended; cook 1 minute, whisking. Slowly whisk in milk; bring to a boil; whisking. Reduce heat to low; simmer 5 minutes, until slightly thickened. Remove from heat; add cheddar, Fontina, and ¼ c. of the Parmesan, whisking until sauce is smooth. Whisk in mustard, salt, and pepper.
Heat oven to 350. Butter a large 3-qt. baking dish w/2T of the butter. Cook pasta 2 minutes less than the recommended time on the package, until slightly undercooked. Drain.
Combine the pasta and cheese sauce; transfer to prepared baking dish.
Melt remaining 2 T. butter, mix with breadcrumbs and ½ c. Parmesan cheese; sprinkle over pasta. If making ahead, place crumb mixture in a food storage bag; refrigerate, sprinkle over pasta before baking. Bake until top is golden and sauce is bubbling, about 40 minutes.