Heat the oven: Set the oven rack to the middle position. Preheat oven to 400F.
Cook the Bacon: Lay out the bacon on a baking tray. Cook for 8 minutes, then turn the tray around and cook for another 5-7 minutes.
When the bacon is done, transfer it to a paper towel lined plate. Reserve the fat.
Saute the vegetables: Add 4 tablespoons of the reserved fat to a dutch oven.
Over medium heat, saute the shallot and carrots for 5 minutes. Then add the garlic and saute for 1 minute more.
While the vegetables are sauteing, heat up the chicken stock in a saucepan until it is steaming.
Make a roux: Sprinkle 4 tablespoons of the flour to the pot, whisking it into the bacon fat. Let the flour bubble for 1 minute, whisking frequently. Stir in the chopped thyme.
Slowly pour the hot chicken stock into the pot while whisking. Bring the soup to a boil, then reduce the heat and let it simmer for 5 minutes.
Melt the cheese: Toss the shredded cheeses with the remaining 2 tablespoons of flour. Pull the pot off the heat and start adding the cheese by the handful, whisking as you go.
Once the cheese has all melted and the soup is smooth, put it back on the heat, add the half and half and bring back to a simmer.
Finish the soup: Crumble up the bacon. Add half to the soup and reserve the rest for sprinkling over the top. Serve with the crumbled bacon, some thyme leaves if you wish, and croutons.