1 pound dried cavatappi or elbow pasta
4 cups shredded medium sharp Cheddar cheese, divided
2 cups shredded smoked Gouda cheese, divided
1 stick unsalted butter
1/2 cup all-purpose flour
1 1/2 cups whole milk
2 1/2 cups half and half
2 teaspoons dry mustard
1 1/2 teaspoons salt
1/2 teaspoon black pepper
1/4 teaspoon paprika
Bring a large pot of salted water to a boil. When boiling, add dried pasta and cook 1 minute less than the package directs for al dente. Drain and drizzle with a little bit of olive oil to keep from sticking.
While water is coming up to a boil, shred cheeses and toss together to mix, then divide into three piles. Approximately 3 cups for the sauce, 1 1/2 cups for the inner layer, and 1 1/2 cups for the topping.
Melt butter in a large saucepan over medium heat. Sprinkle in flour and whisk to combine. Mixture will look like very wet sand. Cook for approximately 1 minute, whisking often. Slowly pour in about 2 cups or so of the milk/half and half, while whisking constantly, until smooth. Slowly pour in the remaining milk/half and half, while whisking constantly, until combined and smooth.
Continue to heat over medium heat, whisking very often, until thickened to a very thick consistency.
Remove from the heat and stir in spices and 1 1/2 cups of the cheeses, stirring to melt and combine. Stir in another 1 1/2 cups of cheese, and stir until completely melted and smooth.
In a large mixing bowl, combine drained pasta with cheese sauce, stirring to combine fully. Pour half of the pasta mixture into a greased 9×13-inch baking dish. Top with 1 1/2 cups of shredded cheeses, then top that with the remaining pasta mixture.
Sprinkle the top with the last 1 1/2 cups of cheese and bake at 325 degrees for 15 minutes, until cheesy is bubbly and lightly golden brown. Turn oven to broil, and broil for 3 to 4 minutes until top is dark in places.