Preheat oven to 325°F and grease a 3-quart (9×13-inch) baking dish. Set aside.
Bring a large pot of salted water to a boil. Cook pasta 1 minute less than package instructions for al dente. Drain and drizzle lightly with olive oil.
Shred and combine cheeses, then divide into three portions:
3 cups for the sauce
1½ cups for the middle layer
1½ cups for the topping
Melt butter in a large saucepan over medium heat. Whisk in flour and cook for 1 minute.
Slowly whisk in about 2 cups of the half and half until smooth, then add remaining half and half and milk, whisking constantly.
Cook, whisking frequently, until sauce thickens to a very thick, creamy consistency.
Remove from heat and stir in salt, pepper, paprika, and 3 cups of cheese in two additions, stirring until fully melted and smooth.
Combine pasta with cheese sauce. Pour half into the baking dish, sprinkle with 1½ cups cheese, then add remaining pasta.
Top with the final 1½ cups of cheese and bake for 15 minutes, until bubbly and lightly golden.