Pat the chuck roast dry with paper towels and season generously all over with kosher salt and pepper, pressing it into the meat.
Heat 1 tablespoon of olive oil in a Dutch oven over medium-high heat until shimmering. Sear the roast for 4 to 5 minutes per side until deep golden-brown. Transfer to a plate and set aside.
Reduce heat to medium, add remaining oil and butter, then add sliced onions and sugar. Cook for 25 to 30 minutes, stirring occasionally, until rich and deep caramel-brown.
Stir in minced garlic and cook for 1 minute until fragrant. Sprinkle flour over onions and stir constantly for 1 to 2 minutes to cook out the raw taste.
Pour in red wine, scraping the bottom to release browned bits, and simmer for 2 to 3 minutes to reduce slightly. Stir in beef broth, Worcestershire sauce, bay leaves, and thyme.
Preheat oven to 300°F. Return the seared roast and any juices to the pot, nestling it into the onions and liquid. Bring to a gentle simmer on the stovetop, then cover with lid.
Transfer the covered pot to the oven and braise for 3 to 3.5 hours until the beef is fall-apart tender when pierced with a fork.
Carefully remove the pot from the oven and transfer the roast to a large bowl or cutting board. Discard bay leaves and thyme stems. Shred beef with two forks, removing large pieces of fat.
Return shredded beef to the pot, stirring into the onion gravy. If desired, sprinkle with Gruyere and place under the broiler for 2 to 3 minutes until melted and bubbly.