Preheat oven to 400°F.
Arrange baguette slices in a single layer on a baking sheet. Bake for 6-8 minutes, until toasted and golden around the edges. Remove and set aside.
In a large heavy-bottomed stockpot, melt butter over medium-high heat. Add onions and sauté until well for about 30 minutes until caramelized (but not burnt), initially stirring every 3-5 minutes, then about once a minute near the end of caramelization to prevent burning. Add garlic and sauté for 2 minutes.
Stir in flour and cook for an additional 1 minute.
Stir in wine to deglaze the pan, using a wooden spoon to scrape up any browned bits on the bottom of the pan.
Add stock, Worcestershire, bay leaf, and thyme and stir to combine.
Continue to cook until the soup reaches a simmer.
Then reduce heat to medium-low, cover and simmer for at least 10 minutes.
Discard the bay leaf and sprigs of thyme.
Taste the soup and season with salt and pepper as needed.
Switch the oven to the broiler.
Once the soup is ready to serve, place your oven-safe bowls on a thick baking sheet.
Ladle the soup into each bowl, then top with a baguette slice and your desired amount of cheese.
Place on an oven rack about 6 inches from the heat and broil for 2-4 minutes, or until the cheese is melted and bubbly. (Keep a close eye on them so that they do not burn.)
Remove from the oven and serve immediately while the soup is hot and bubbly.