Cook pasta according to package instructions and set aside. While the pasta is cooking, prep the bacon by chopping into largish pieces. Also dice the onion, mince the garlic, and prepare your mushrooms. If you have picky eaters like I do, you may want to finely dice them. Otherwise, buy pre-sliced mushrooms and save yourself some work.
In the SAME LARGE PAN that you cooked the noodles in, cook bacon until crisp. Then, remove bacon from pan. Leave enough bacon fat in the pan for browning the chicken, remove (and save) the rest - you'll need it
Salt and pepper chicken (if using fresh) and brown in batches in the bacon fat, adding more fat as needed. Cooking in the high-sided pan will keep splatter to a minimum! This takes about 3-4 minutes.
Make sure you have at least 1/4 cup of bacon fat remaining in the pan. Add butter if needed and sauté the onion and garlic and mushrooms in the bacon fat until softened, 2-3 minutes.
Now, make a roux by adding the flour to the sautéed veg, cook about 1-2 minutes. Add salt & pepper to taste.
Slowly add chicken stock, whisking smooth and making sure to scrape up all the browned bits from the bottom of the pan.
Cook over med/med-high heat until it starts to thicken and then cook longer to thicken more. Add more liquid to thin out; don't make the sauce too thick, or the noodles will soak up all of the liquid and the casserole will be dry.
Remove from heat and add cheeses.
Finally, still using the same pot that contains the sauce, add in the cooked bacon, cooked chicken, and noodles. Add noodles a little bit at a time to make sure you don't wind up with too much noodle for the amount of sauce you have.
Top it with any extra/reserved bacon (if you didn't eat it all while prepping the recipe) and/or more cheese
Bake in a hot oven until done, 15-20 minutes.