Preheat the oven to 350 degrees Fahrenheit. Spray a 9 by 13 inch baking dish with cooking spray and set aside.
Bring a large pot of water to a boil. Season the water with 1 teaspoon of kosher salt (or 1/2 teaspoon table salt). Add the spaghetti and cook according to package instrucitons.
16 ounces uncooked spaghetti
While the spaghetti is cooking, melt butter in a large skillet. Add the mushrooms and saute until they are soft, about 4 to 6 minutes.
8 tablespoons unsalted butter, 16 ounces mushrooms
Whisk in the flour and then very slowly whisk in the chicken stock. Add just a few tablespoons at a time, whisking to combine it, until it is completely added. The more you add the more quickly you can go. The whole process should take about a minute or two.
1/3 cup all purpose flour, 2 cups chicken stock
Whisk in the milk, garlic powder, onion powder, salt and pepper.
1 1/4 cup milk, 1 teaspoon garlic powder, 2 teaspoon onion powder, 1 teaspoon kosher salt, 1/2 teaspoon black pepper
Bring to a simmer, and then cook, stirring often, over low heat for 5 minutes. Stir in the sour cream and 1 cup mozzarella, taste and add more salt and pepper if needed.
1 cup sour cream, 2 cups mozzarella cheese
Add cooked spaghetti and chicken to the prepared baking dish. Stir in the sauce. Top with remaining mozzarella and Parmesan cheese. Cover and bake for 30 minutes.
2 cups cooked chicken, 1/4 cup Parmesan, 2 cups mozzarella cheese