From a Bobby Flay throwdown.
Unsalted butter, for the baking dish
1 tablespoon olive oil
One 1-inch-thick slice pancetta, cut into small dice
4 cloves garlic, finely chopped
3 tablespoons all-purpose flour
5 cups whole milk, or more if needed, hot
4 large egg yolks, lightly whisked
2 teaspoons finely chopped fresh thyme leaves
½ teaspoon cayenne pepper
2 cups (8 ounces) freshly grated Asiago cheese, plus more for the top
1 ½ cups (12 ounces) shredded Irish white cheddar, plus more for the top
1 ½ cups (12 ounces) American cheddar, such as Goot Essa Mountain Valley, plus more for the top
1 cup (4 ounces) grated aged fontina cheese, plus more for the top
½ cup freshly grated Parmesan cheese, plus more for the top
Kosher salt and freshly ground black pepper
1 pound elbow macaroni, cooked just under al dente
½ cup coarsely chopped fresh flat-leaf parsley leaves
Preheat the oven to 375 degrees. Butter the bottom and sides of a 10 x 10 x 2-inch baking dish and set it aside.
Heat the oil in a large sauté pan over medium heat. Add the pancetta and cook until golden brown on all sides, about 8 minutes. Remove with a slotted spoon to a plate lined with paper towels.
Add the garlic to the fat in the pan and cook until light golden brown, 1 minute. Whisk in the flour and cook for 1–2 minutes. Whisk in the hot milk, raise the heat to high, and cook, whisking constantly, until thickened, 3–5 minutes. Whisk in the eggs until incorporated and let cook for 1–2 minutes. Remove from the heat and whisk in the thyme, cayenne, and all the different cheeses until completely melted. Season with salt and pepper. If the mixture appears too thick, add additional warm milk, ¼ cup at a time.
Put the cooked macaroni in a large bowl, add the cheese sauce, reserved pancetta, and the parsley, and stir until combined. Transfer to the prepared baking dish.
Combine the additional ¼ cup each fontina, cheddar, Asiago, and Parmesan in a bowl, and sprinkle evenly over the top. Bake until the dish is heated through and the top is a light golden brown, 12–15 minutes. Remove from the oven and let rest for 10 minutes before serving.