Heat the olive oil and butter in a large Dutch oven or other heavy pot over medium heat. Add the onions and thyme and cook, stirring occasionally, until the onions are deep brown and caramelized , about 40 minutes.
Add the garlic and bay leaf and continue to cook another 8 minutes, seasoning with the salt (up to 1 tbsp) and pepper as you go.
Increase the heat to medium-high and add the white wine. Bring the wine to a boil and cook until about half evaporates, about 3 minutes. Add the broth and decrease the heat to medium. Simmer the soup until it is fragrant and just a touch thickened, about 40 minutes.
During the last 10 minutes of cooking the soup, preheat the broiler to medium-low and toast the baguette slices.
Pull the thyme and bay leaf out of the pot and stir in the red wine and a pinch of sugar.
Arrange six ovenproof bowls on a rimmed baking sheet and divide the soup among the bowls. Top each bowl of soup with a slice of toasted bread and sprinkle the Gruyere over the top. Place the baking sheet with the bowls on the top oven rack.
Broil until the cheese is melted and starting to turn golden brown, about 3 minutes (Don't broil them too long or the fat will separate out the cheese and become oily). Carefully transfer the bowls onto plates and serve bubbling hot.