Melt butter in a large pot over medium heat. Add the sliced onions and sugar, stirring to coat. This is the key step—be patient!
Cook the onions for 35-40 minutes, stirring occasionally, until they're deeply caramelized and golden brown. Don't rush this step—it's where all the flavor develops!
Add the minced garlic and cook for 1 minute. Sprinkle the flour over the onions and stir well to coat. Cook for 2-3 minutes.
Pour in the white wine to deglaze the pot, scraping up any browned bits from the bottom. Let it simmer for 2 minutes.
Add the beef broth, bay leaves, thyme, and Worcestershire sauce. Bring to a boil, then reduce heat and simmer for 20 minutes. Season with salt and pepper.
Preheat your broiler. Ladle the soup into oven-safe bowls and place them on a baking sheet for easy handling.
Top each bowl with a slice of toasted French bread, then generously cover with Gruyère and Parmesan cheese.
Broil for 2-4 minutes, watching carefully, until the cheese is melted, bubbly, and golden brown on top. Let cool for a minute before serving—it'll be super hot!