Preheat oven to 300°F (150°C). Pat the chuck roast completely dry with paper towels. Season aggressively on all sides with kosher salt and black pepper.
Heat 2 tablespoons of oil in a large Dutch oven over medium-high heat until shimmering. Carefully lay the roast in and sear without moving until a dark brown crust forms, about 4-5 minutes per side. Transfer to a plate.
Reduce heat to medium. Add the remaining 1 tablespoon oil, then onions, carrots, and celery. Cook, stirring occasionally, until softened and starting to brown, about 7-8 minutes. Add garlic and tomato paste, stirring for 1 minute until fragrant.
Pour in the red wine and bring to a boil, scraping up all the browned bits from the bottom. Let it reduce by half, about 3 minutes. Stir in beef broth, Worcestershire sauce, thyme sprigs, and bay leaves.
Return the seared beef and any accumulated juices to the pot, nestling it among the vegetables. The liquid should come about halfway up the meat; add a splash more broth if needed. Cover with a tight-fitting lid and transfer to the oven. Cook for 3.5 to 4 hours, or until the meat is fork-tender and an instant-read thermometer inserted into the thickest part registers at least 145°F (63°C); for pull-apart tenderness, target 200–205°F (93–96°C).
Carefully transfer the roast to a cutting board and tent loosely with foil. Strain the cooking liquid into a fat separator or large measuring cup; discard solids (or keep carrots to serve). Skim off excess fat. In the now-empty Dutch oven over medium heat, melt the butter, whisk in the flour (or cornstarch slurry), and cook for 1 minute. Slowly whisk in the defatted cooking liquid and bring to a simmer, stirring until thickened to a gravy consistency. Season to taste.
Slice the beef against the grain into thick slices. Arrange on a platter with the reserved carrots and any other vegetables you kept. Ladle some gravy over the top and serve the rest on the side.