Preheat oven to 300ºF. Sprinkle the beef liberally with salt and freshly ground pepper on both sides.
Heat olive oil in a Dutch oven until shimmering. Add the beef and cook until browned on one side, about 5 minutes. Flip the beef and continue cooking until the other side is brown, about 10 minutes total.
Transfer the beef to a plate. Add the bacon to the pot and cook until crisp, about 5 minutes. Transfer to the plate with the beef.
Stir in the garlic until fragrant, about 30 seconds. Pour in wine and stir, scraping up any browned bits from the bottom of the pot.
Add beef broth, tomato paste, thyme, 1/2 teaspoon salt, and 1/2 teaspoon pepper. Bring to a boil; reduce heat to medium-high and cook uncovered for 10 minutes until the sauce has reduced.
Return the beef and bacon to the pot. Add carrots, mushrooms, and onion. Cover and bake for 3 and 1/2 hours, turning the beef in the pot every 30 minutes.
Transfer the beef to a large bowl and shred with two forks. Discard cooking vegetables or reserve for another use (they are delicious to eat).
To make ahead: Cover and refrigerate overnight. Reheat in a slow cooker on HIGH for 3 to 4 hours or in a pot on the stove for 15 to 20 minutes, stirring frequently.