Add butter and olive oil to a large dutch oven over medium low heat. When butter is melted, add onions, salt, and pepper and stir until onions are well coated in butter.
Cook for 30-45 minutes, stirring occasionally, until onions are a deep golden brown and jammy. Don’t rush this! Stir sugar in (if using) during the last 10-ish minutes of cooking as it will help deepen the color.
Once onions are caramelized, stir in the minced garlic and cook for about 1 minute. Stir in thyme and bay leaf.
Pour red wine in and scrape the bottom of the pot with a wooden spoon. Let wine simmer for 3-5 minutes, until it reduces slightly and no longer smells sharp.
Add beef broth, Worcestershire sauce, and vinegar and bring mixture to a gentle simmer.
Once simmering, nestle the chicken breasts (or thighs) into the broth and cook for 15-20 minutes, until temperature reaches 165 degrees F internally.
Remove chicken, shred or slice when cool enough to handle, and return it to the soup. Discard bay leaf.
Taste soup and add more salt and pepper as needed.
Preheat your oven's broiler to high and ladle soup into 4 oven-safe bowls (for entree-sized portions). Top each portion with a toasted baguette slice and divide gruyere and parmesan cheeses evenly over each. I recommend placing the bowls on a baking pan for easy transfer into and out of oven.
Broil soup for 2-4 minutes until cheese is bubbly and golden.