Pat the beef dry and season with half the salt and the pepper. Heat the olive oil and half the butter in the Dutch oven over medium-high heat. Brown the beef in uncrowded batches, turning when a brown crust forms; do not wait for every face to brown deeply. Transfer to a plate. Lower the heat if the butter or browned bits begin to burn.
Reduce the heat to medium-low and add the remaining butter, the onions, and part of the remaining salt. Cook, stirring and scraping the bottom as needed, until soft and deeply amber, allowing roughly 35 to 50 minutes or longer if needed. If browned bits darken too quickly, lower the heat and add a splash of water. Add the garlic and stir for about 1 minute.
Stir the flour into the onions and cook for 1 minute. Add the red wine and scrape the browned bits from the bottom. Simmer for a few minutes, then add the broth, Worcestershire sauce, thyme, bay leaves, beef, and any accumulated juices.
Bring to a gentle simmer, cover, and cook over low heat for about 2 1/2 to 3 hours, checking occasionally, until a fork enters the beef with little resistance. Add a little water or broth if the liquid reduces too far. If the meat is still firm, continue gently until tender. Remove the bay leaves and thyme stems. Adjust the sauce consistency and salt to taste.
Arrange the already toasted baguette slices on a baking sheet explicitly rated for broiler use. Divide the Gruyère over the slices and broil according to your oven's instructions, watching continuously, until melted and browned in spots, usually just a few minutes. Ladle the stew into serving bowls and add the cheese toasts immediately before serving. Omit this step when serving the stew without the topping.