Caramelize the Onions:
Heat butter and olive oil in a large pot over medium heat. Add the sliced onions, salt, and sugar. Cook, stirring frequently, for 30-40 minutes until the onions are deeply golden and caramelized. Lower the heat if needed to prevent burning.
Add Garlic and Thyme:
Stir in the minced garlic and thyme, cooking for 1-2 minutes until fragrant.
Deglaze the Pot:
Pour in the white wine to deglaze, scraping up any browned bits from the bottom of the pot. Let it simmer for 2-3 minutes until the wine reduces slightly.
Simmer the Soup:
Add the beef broth and bay leaf. Bring to a boil, then reduce the heat and let the soup simmer for 20-30 minutes to develop flavors. Discard the bay leaf before serving.
Prepare the Bread Topping:
Preheat your oven’s broiler. Arrange the baguette slices on a baking sheet and toast under the broiler until golden, flipping once.
Assemble and Broil:
Ladle the hot soup into oven-safe bowls. Place a toasted baguette slice on top of each bowl and sprinkle generously with Gruyère and Parmesan cheese. Place the bowls on a baking sheet and broil until the cheese is melted and bubbly, about 2-4 minutes.
Serve:
Carefully remove the bowls from the oven and serve the soup hot, with extra baguette slices on the side if desired.