Fill a 4–5 quart saucepan about two-thirds full with water and bring to a rolling boil over high heat.
Add the dry elbow macaroni and stir often; cook about 15 minutes until al dente (it will continue to cook in the oven).
Drain the pasta in a colander and rinse with cold water to stop cooking and prevent sticking; set aside.
Preheat the oven to 350°F (175°C).
In the same or a clean saucepan over medium-high heat, melt the butter pats. Whisk in the flour and cook about 2 minutes, whisking constantly, until the raw flour smell is gone.
Slowly whisk in the whole milk and heavy cream, whisking constantly to prevent lumps.
Add the salt, white pepper, smoked paprika, garlic powder, and onion powder; continue cooking and whisking for 4–5 minutes until the sauce thickly coats the back of a spoon.
Lower the heat to low and stir in 1½ cups of the shredded Colby Jack, the shredded gouda, shredded American cheese, and shredded Parmesan, stirring until the cheese just melts.
Remove the sauce from heat and fold the cooked elbow macaroni into the cheese sauce until evenly coated.
Lightly spray a 9×13 baking dish with nonstick spray and pour the macaroni and cheese into the dish, smoothing the top.
Evenly sprinkle the remaining ½ cup shredded Colby Jack over the top and bake for 20–25 minutes until the filling is bubbly and the cheese on top is melted; avoid browning the top.
Allow the casserole to rest for a few minutes before serving.