For the soup: Preheat the oven to 400 degrees F. Slice the onions in half from root to tip, then slice them thin.
Melt the butter in a heavy ovenproof pot or Dutch oven over medium-low heat. Add the onions, stir to coat them in the butter and cook, covered, until translucent and soft, about 20 minutes.
Transfer the pot to the oven with the lid slightly ajar. Roast the onions for 1 hour, stirring twice to keep them from burning. (Some brown bits on the bottom of the pan are fine though.)
Return the pot to the stovetop over medium heat (keep the oven on) and pour in the wine. Stir, scraping the pan. Cook until the wine reduces, 5 minutes. Next, add the beef broth, chicken broth, thyme, Worcestershire sauce and garlic. Reduce the heat to low and let the soup simmer for 45 minutes.
For the croutons: Meanwhile, drizzle slices of French bread with olive oil and toast in the oven until golden. Set aside.
To serve, turn on the oven broiler. Ladle the soup into ovenproof bowls. Place 1 or 2 pieces of the croutons on top of each serving of soup, depending on the size of the bowl. Place a thick slice of cheese on top of each bowl, then place the bowls on a baking sheet and broil just long enough for the cheese to become melted, bubbly and slightly toasted.