Heat a large pot or dutch oven over high heat.
Melt the butter, add olive oil, brown sugar, and salt, stir to combine.
Add in onions and stir to coat, saute and stir frequently until onion begins to soften and lightly brown, 5 minutes.
Reduce heat to medium, cook onions, stirring frequently, ensuring the onions do not burn and are browned, 30 minutes.
Add garlic and saute until fragrant, 30 seconds.
Add wine to deglaze the pan, stir to scrape up any browned bits on the bottom of the pan.
Increase heat to high, allow wine to boil and evaporate, stirring frequently, 4 to 5 minutes.
Add beef stock, thyme sprigs, and bay leaf.
Bring stock to a boil, cover, and reduce to a simmer, 30 minutes.
Discard thyme sprigs and bay leaf, taste soup and season with salt and pepper.
Place bread on a baking pan and broil on high in the center of the oven for 5 minutes, flip and toast another 3 minutes or until golden brown.
Add soup to 4 bowls, top with toasted bread slices (1 to 2), and evenly distribute cheese on top of each piece of bread.
Broil on high, about 8 inches away from the top of the oven until cheese is melted and golden, 5 to 6 minutes.
Immediately serve French onion soup.