In a large pot, melt the butter over medium-high heat. Add the onions and sauté for about 10 minutes, stirring regularly, until they soften.
Lower the heat to medium, then mix in the salt and sugar. Cook, stirring every few minutes, for 35 minutes or until the onions are caramelized and syrupy.
Stir in the garlic and cook for another minute until fragrant.
Pour in the red wine to deglaze the pot, making sure to scrape up any brown bits from the bottom and sides.
Add the beef broth, chicken broth, Worcestershire sauce, thyme, and bay leaf. Let it simmer gently for about 20 minutes, stirring occasionally.
Discard the thyme and bay leaf. Stir in the balsamic vinegar and adjust seasoning with more salt and pepper if needed.
Lower the heat and keep the soup warm while you prepare the bread.
Preheat the broiler and position the rack about 6 inches from the heat. Arrange the bread slices on a baking sheet and brush both sides with olive oil. Broil for 2-3 minutes, flipping once, until the bread is toasted on both sides. Watch closely to avoid burning.
Place oven-safe bowls on a baking sheet, fill them about two-thirds full with the hot soup. Add a slice of toasted bread on top of each, then sprinkle generously with Gruyere, Mozzarella, and Parmesan.
Broil until the cheese bubbles and turns golden brown, creating a delightful crust over the bowl.
Serve hot and enjoy this comforting dish!