Preheat oven to 350F/180C.
Cook and drain the pasta according to the directions in the package and set aside.
While pasta is cooking, melt butter in a large and heavy skillet over medium heat. Add the onion and sauté for 4-5 minutes until translucent. Do not let brown! Add the garlic powder, chopped bacon, and let cook, stirring constantly, for about 1 minute. Add the flour and stir to combine, then cook for 2 minutes, stirring constantly.
Add the half and half, broth/stock, salt, and pepper. Whisk for 1 minute, in small circles around the frying pan, until it starts to thicken. Then add the diced tomatoes. Increase the heat to medium high and cook, stirring constantly, for around 5 minutes or until thick enough to coat the back of a metal spoon. Taste and adjust the seasonings if necessary.
Add the chicken, cooked pasta, and cheddar cheese and mix through. Let it cook for around 1 minute on the stove, then remove from heat.
Sprinkle with mozzarella cheese. Cover with foil and bake for 8 minutes or until cheese is melted. Remove the foil and bake for an additional 2 minutes. Serve while it is still hot, garnished with fresh basil leaves and oregano, if desired. This chicken bacon pasta bake can also be served with a sprinkling of grated Parmesan cheese and fresh grape tomatoes on top if desired. If you would like to, sprinkle on a bit of red pepper flakes, too.