Slice the onions uniformly, about 1/8 inch thick.
Melt butter and olive oil in a heavy pot over medium heat; add onions and 1/2 tsp salt.
Cook uncovered 45–60 minutes, stirring every 5–10 minutes, until deep mahogany brown.
Stir in garlic and flour; cook 1–2 minutes.
Deglaze with the vinegar-water mixture, scraping up all the browned fond.
Add beef stock, Worcestershire, thyme, bay leaf, remaining salt, and pepper. Simmer uncovered 30 minutes.
Remove thyme and bay leaf; taste and adjust salt.
Ladle into oven-safe bowls, top with baguette and Gruyère, and broil 2–4 minutes until browned and bubbling.
Rest 5 minutes before serving.