Heat butter and olive oil in a large pot over medium heat.
Add sliced onions and sauté until softened (about 10 minutes).
Sprinkle sugar over the onions to help caramelize.
Continue cooking, stirring frequently, until onions are deep golden brown (20-25 minutes).
Add the bay leaf, salt, and pepper.
Pour in the wine (if using) and scrape any browned bits from the bottom.
Add the broth and bring to a simmer.
Reduce heat and let simmer for 20 minutes.
Ladle soup into oven-safe bowls, top with baguette slices and cheese, then broil until cheese is bubbly and golden.