Caramelize the onions: Melt butter with olive oil in a large heavy-bottomed Dutch oven over medium heat. Add the sliced onions and toss to coat. Cook uncovered for 10 minutes until softened, then stir in sugar and 1/2 tsp salt. Lower heat to medium-low and cook for 35 to 40 minutes, stirring every few minutes, until deeply caramelized, soft, and rich golden brown.
Add garlic and deglaze: Stir in minced garlic and cook for 1 minute until fragrant. Pour in the dry white wine to deglaze, scraping up all the savory browned bits stuck to the bottom of the pot. Simmer for 3 minutes until wine reduces by half.
Simmer the broth: Pour in the beef broth, chicken broth, Worcestershire sauce, fresh thyme sprigs, and bay leaves. Bring to a gentle boil, then reduce heat to low. Cover partially and simmer for 25 to 30 minutes to allow the rich flavors to meld. Discard thyme stems and bay leaves. Season with salt and black pepper to taste.
Toast the baguette: Preheat oven to 400°F (200°C). Place baguette slices on a baking sheet and bake for 6-8 minutes until crisp and lightly golden on both sides.
Assemble and broil: Preheat oven broiler to high. Ladle hot soup into oven-safe ceramic soup crocks placed on a sturdy baking sheet. Float 1 or 2 toasted baguette slices on top of each bowl. Generously heap shredded Gruyère and grated Parmesan over the bread, letting cheese drape over the rims.
Broil to molten perfection: Broil 6 inches from the heat source for 3 to 4 minutes until cheese is bubbly, melted, and beautifully blistered with golden-brown spots. Garnish with fresh thyme leaves and let rest 3 minutes before serving piping hot.