In a large saucepan (or soup pot), melt the butter over medium-low.
Add the sweet onions to the melted butter, along with a dash of salt and pepper. Stir the onions to coat in the butter, then cover. Let the onions cook slowly, for 75 to 90 minutes, stir occasionally (every 10 to 15 minutes), until the onions are caramelized.
Uncover once the onions are caramelized, then increase the heat to medium. Add the flour and stir the onions for 1 minute to coat them with flour.
Add the red wine, and stir, scraping (with a plastic scraper or wooden spoon) any excess onion from pan bottom and sides.
Add the cayenne pepper, lemon, fresh thyme, and bay leaf, and give a quick stir to combine the ingredients.
Add the beef and chicken stocks, then increase the heat to high. Stir occasionally while bringing the soup to a boil. Then lower the heat to medium and allow the soup to simmer for 10 minutes.
Transfer the soup into oven-safe bowls, then place a slice of the baguette on top. Sprinkle the soup and baguette with the Gruyere cheese, then with the Parmesan.
Turn the oven broiler on high. Place the soup bowls onto a baking pan, and place the soups under the broiler. Broil the soups until the cheese melts and lightly browns.
Remove the bowls from the broiler and garnish with parsley (optional). Serve immediately.