Pat the beef cubes dry with paper towels and season generously with salt and pepper.
Heat 2 tablespoons of olive oil in a large Dutch oven over medium-high heat. Sear the beef in batches until browned on all sides (about 3-4 minutes per batch). Remove beef and set aside.
Reduce heat to medium. Add the remaining tablespoon of oil and the butter to the pot. Add the sliced onions and sugar. Cook, stirring occasionally, for 25-30 minutes until the onions are deep golden brown and caramelized.
Stir in the minced garlic and cook for 1 minute until fragrant. Sprinkle the flour over the onions and stir well to coat, cooking for 1-2 minutes to remove the raw flour taste.
Pour in the red wine to deglaze the pan, scraping up any browned bits from the bottom with a wooden spoon.
Add the beef broth, Worcestershire sauce, fresh thyme, and bay leaves. Return the seared beef (and any resting juices) to the pot. Stir to combine.
Bring the stew to a boil, then reduce heat to low. Cover and simmer gently for 2 to 2.5 hours, or until the beef is fork-tender. (Alternatively, bake in a 325°F oven for the same duration). Discard bay leaves.
Preheat your oven broiler. Arrange the baguette slices on a baking sheet and toast lightly.
Ladle the hot stew into oven-safe bowls (or keep in the Dutch oven). Top with the toasted baguette slices and cover generously with shredded Gruyère cheese.
Place under the broiler for 2-4 minutes until the cheese is melted, bubbly, and slightly browned. Serve immediately.