Cook the Pasta: Fill a large pot with water and bring it to a rolling boil. Add the elbow macaroni and cook according to the package instructions, but reduce the cooking time by one minute to keep the pasta slightly firm. Drain the pasta well.
Butter Toss for Texture: Return the drained macaroni to the pot and add the tablespoon of butter. Toss the pasta gently until the butter melts and evenly coats every piece. This step helps keep the pasta from swelling or becoming mushy when baked later. Set aside and allow to cool slightly.
Prepare the Topping Mixture: In a small bowl, combine the panko breadcrumbs, melted butter, and salt. Mix thoroughly to ensure the breadcrumbs are evenly coated. Set this mixture aside for the topping.
Make the Roux-Based Cheese Sauce: In a large saucepan or ovenproof skillet, melt the butter over medium heat. Once melted, sprinkle in the flour and whisk continuously for about one minute to cook off the raw flour taste and form a smooth paste (roux).
Add Milk and Thicken: Gradually pour in about one cup of the warm milk, whisking constantly to blend the roux smoothly. Slowly add the remaining milk, continuing to whisk to avoid lumps. Bring the mixture to a gentle simmer and cook for 5 to 8 minutes, stirring frequently, until the sauce thickens enough to coat the back of a spoon.
Season and Incorporate Cheese: Stir in the salt and optional garlic, onion, and mustard powders if using. Remove the sauce from heat and immediately fold in the freshly grated Gruyere and mozzarella cheeses until just combined. The cheese will melt gently in the warm sauce, creating a creamy texture.
Combine Pasta and Sauce: Add the cooled macaroni to the cheese sauce and stir quickly to coat all the pasta evenly. Pour this mixture back into your ovenproof skillet or transfer to a baking dish, spreading it out evenly.
Add Breadcrumb Topping: Evenly sprinkle the prepared breadcrumb mixture over the mac and cheese. This will create a crisp, golden crust during baking.
Bake to Perfection: Place the dish in a preheated oven at 180°C (350°F). Bake uncovered for approximately 25 minutes, or until the topping is lightly golden and crunchy. Avoid overbaking to preserve the creamy interior.
Serve Immediately: Remove from oven and let rest for a few minutes before serving. Optionally, garnish with fresh parsley for a pop of color and freshness.