Melt the butter in a large pot over medium-high heat. Add the onions and sauté, stirring frequently, until they soften, which should take about 10 minutes.
Reduce the heat to medium and stir in the salt and sugar. Cook for another 35 minutes, stirring occasionally (about every 5 minutes), until the onions are caramelized and almost syrupy.
Add the garlic and cook until fragrant, about 1 minute. 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. Gently simmer over medium to medium-low heat for about 20 minutes, stirring occasionally.
Remove and discard the herbs. Stir in the vinegar and taste the soup. Adjust the seasoning with additional salt and pepper if needed. Reduce the heat to low and cover the pot to keep the soup hot while you prepare the bread.
Preheat the oven broiler with the rack positioned 6 inches from the heat source. Arrange the bread slices on a baking sheet and brush both sides with olive oil. Broil for 2-3 minutes, flipping once, until both sides are well toasted. Keep a close eye on the bread to prevent burning, as oven temperatures can vary. Remove from the oven but keep the broiler on.
Place oven-safe bowls or crocks on a rimmed baking sheet. Fill each bowl two-thirds full with hot soup. Top each bowl with a slice of toasted bread, and sprinkle with Swiss, Mozzarella, and Parmesan cheeses.
Broil until the cheese is bubbly and golden brown. As the cheese melts, it will overflow and form a delicious, crusty seal around the edges of the bowl.