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.