Caramelize the Onions
Heat butter and olive oil in a large pot over medium heat. Add all sliced onions, sprinkle with sugar and ½ tsp salt. Cook for 40-50 minutes, stirring every 5-10 minutes. The onions should turn deep golden brown. Don't rush this step - it's the soul of the soup! Low and slow is the key.
Build the Soup
Once onions are deeply caramelized, add beef broth, water, bay leaves, and dried thyme. Bring to a simmer and cook for 20 minutes to let the flavors meld. Remove bay leaves. Taste and adjust seasoning with salt and pepper.
Prepare the Bread
While soup simmers, slice French bread into ½-inch thick rounds. Place on a baking sheet and toast in a preheated oven at 350°F for 5-7 minutes until crispy and lightly golden.
Assemble and Broil
Ladle hot soup into oven-safe bowls. Top each with 1-2 pieces of toasted bread, then generously pile shredded cheese on top. Place bowls on a baking sheet and broil for 2-3 minutes until cheese is bubbly and golden brown. Watch carefully to avoid burning!
Serve
Let cool for 2-3 minutes before serving (the cheese will be lava-hot!). Serve immediately while cheese is still gooey.