It's crucial to cook the pasta until tender--just past the "al dente" stage. In fact, overcooking is better than undercooking the pasta. Whole, low-fat, and skim milk all work well in this recipe. The recipe can be halved and baked in an 8-inch-square, broilersafe baking dish.
For the pasta and cheese: Adjust oven rack to lower-middle position and heat broiler. Bring 4 quarts water to boil in Dutch oven over high heat. Add macaroni and 1 tablespoon salt; cook until pasta is tender. Drain pasta and set aside in colander. Now fry bacon. Once it is cooked, set aside. Then In now-empty Dutch oven, heat butter over medium-high heat until foaming. Add flour, mustard, and cayenne (if using), Worcestershire sauce and whisk well to combine. Continue whisking until mixture becomes fragrant and deepens in color, about 1 minute. Gradually whisk in milk; bring mixture to boil, whisking constantly (mixture must reach full boil to fully thicken). Reduce heat to medium and simmer, whisking occasionally, until thickened to consistency of heavy cream, about 5 minutes. Off heat, whisk in cheeses and 1 teaspoon salt until cheeses are fully melted. Add pasta and cook over medium-low heat, stirring constantly, until mixture is steaming and heated through, about 6 minutes. Add bacon crumbles. 4. Transfer mixture to broiler-safe 9-by 13-inch baking dish and sprinkle evenly with bread crumbs. Broil until crumbs are deep golden brown, 3 to 5 minutes, rotating pan if necessary for even browning. Cool about 5 minutes, then serve. Garnish with fresh chopped tomato and dried or fresh basil. It adds a nice fresh flavor.
Recipe adapted from Cookillustrated Classic Macaroni and Cheese recipe