Bring a large pot of generously salted water to a rolling boil, add the elbow macaroni, and cook until just al dente according to package directions, stirring occasionally. Reserve 1/2 cup (120ml) of pasta water before draining, then drain through a colander without rinsing.
Set your oven to broil on high (approximately 500°F / 260°C) and position the rack about 6 inches (15cm) below the broiler element. Lightly grease your 9x13 inch baking dish with cooking spray or butter and set aside.
Melt the butter in a large saucepan over medium heat, then whisk in the flour, salt, paprika, and turmeric (if using). Cook the roux, whisking constantly, for 60 to 90 seconds until it smells slightly nutty and no longer raw.
Add the whole milk gradually, starting with 1/2 cup (120ml) at a time and whisking fully between each addition, until all 3 cups are incorporated. Cook over medium heat, whisking frequently, for 3 to 5 minutes until the sauce thickens enough to coat the back of a spoon.
Scoop about 1/4 cup of the hot sauce into a small bowl, whisk in the egg yolk until fully combined, then pour the tempered mixture back into the saucepan while whisking constantly. Whisk for another 30 seconds until the sauce is smooth and slightly thicker.
Reduce the heat to low, then stir in the American cheese until melted, followed by 1.5 cups of the sharp cheddar, all of the Parmesan, and all of the Romano, stirring continuously until the sauce is completely smooth. Taste and adjust salt as needed.
Add the drained macaroni to the cheese sauce and stir gently until every piece of pasta is evenly coated, adding a splash of reserved pasta water if the sauce seems too thick. Pour the mixture into the prepared 9x13 inch baking dish and spread into an even layer.
Sprinkle the reserved 1/2 cup of sharp cheddar and the 1 cup of Colby Jack evenly over the surface, then broil for 3 to 5 minutes, watching closely, until the cheese is melted and golden brown in spots. Remove immediately once the top is golden.
Allow the mac and cheese to rest for 5 minutes before serving so the sauce sets slightly and holds its shape when scooped. Serve warm directly from the baking dish.