Preheat your oven to 350 degrees Fahrenheit. Spray a 9 by 13 inch baking dish with cooking spray. Set aside.
Cook the macaroni according to package instructions, making sure to salt the water with 2 teaspoons of kosher salt. When it is finished cooking, drain and set aside.
1 pound elbow macaroni
While the pasta is cooking, melt the butter in a large skillet over medium heat. Whisk in the flour. Make sure it fully combines with the butter and cooks for about 30 more seconds. Then slowly whisk in the half and half and the whole milk. You want to start with just a few tablespoons at a time, adding more once it is absorbed by the roux. Then you can gradually add it more quickly. The whole process should take less than 2 minutes.
6 tablespoons unsalted butter, 2 1/4 cups cold half and half, 1 1/2 cups cold whole milk, 6 tablespoons all purpose flour
Combine the grated cheeses. Then pull out 2 cups and set aside. (You will have one bowl of 4 cups and one bowl of 2 cups.)
4 cups medium cheddar cheese, 2 cups Gruyere cheese
Add in the salt, onion powder, garlic powder, paprika, and black pepper to the sauce. Stir in 4 cups of shredded cheese until completely melted. Try the sauce and add more seasoning to taste.
2 teaspoons kosher salt, 1 1/2 teaspoons garlic powder, 1 teaspoon paprika, 1/4 teaspoon black pepper, 1 1/2 teaspoons onion powder
Stir in the cooked noodles. Transfer the mixture to the prepared baking dish. Top with the remaining 2 cups of cheese.
Put the baking dish in the oven and bake for 30 minutes. Let it rest for 5 minutes before serving.