Preheat oven to 350 degrees F.
Lightly grease a 9x13 baking dish with butter or with non-stick cooking spray. Set aside.
Cook pasta per box directions, aim for al dente. Drain, but don't rinse, mix with olive oil, and set aside.
Place a large saucepan over medium heat and once it's hot add the butter. Stir and melt the butter, carefully not to burn it.
Add chicken and cook stirring until golden brown.
Add the flour and whisk until fully combined.
While still whisking, little by little add the milk, stirring to combine. Take your time and don't rush through this step. Add the cream next.
Add onion powder, garlic powder, paprika, mustard, salt, and pepper.
Stir over low-medium heat, bring the mixture to a boil, and let it simmer for about 2 minutes.
Stir in Buffalo sauce and sour cream until fully combined. If the sauce is too thick, add more milk or some chicken broth. Taste and adjust the sauce for salt and pepper.
Remove pan from heat and add the 4 cups of cheddar cheese, one cup at a time, stirring after each addition.
Once the cheese is fully melted, add the cooked macaroni and gently stir to combine. Transfer the mixture to the prepared casserole dish. Level the top with a spatula.
Sprinkle 1 cup of mozzarella cheese evenly over the surface and top with chopped cooked bacon if using.
Bake the casserole uncovered in the preheated oven for 25-30 minutes. Until the top is golden brown and bubbly.
Remove from oven and let it rest for 15 minutes before serving.
Serve topped with extra bacon and if desired chopped parsley.
