Trim any thick, hard caps of fat off the short ribs, then pat them very dry and season on all sides with the salt and pepper. Dry meat is the key to a good sear, and trimming now means less grease in your sauce later.
Heat the olive oil in a large skillet over medium-high heat. Sear the ribs in batches for 2 to 3 minutes per side, until deeply browned all over. Don't crowd the pan, and don't rush this step, because the browning is where the rich, roasted flavor comes from. Transfer the ribs to the Crockpot as they finish.
Pour off all but 1 tablespoon of the fat from the skillet. Add the onion, carrots, and celery and cook for 5 minutes, until softened and lightly golden. Stir in the garlic and tomato paste and cook for 1 to 2 minutes, until the paste darkens to a brick red. Pour in the wine and scrape up all the browned bits from the bottom of the pan. Simmer for 3 minutes, until reduced by about half, then stir in the broth, balsamic, and Worcestershire.
Pour the vegetables and liquid over the ribs in the Crockpot and tuck in the thyme, rosemary, and bay leaves. The ribs should be mostly submerged but not covered completely. Cover and cook on low for 8 to 9 hours, or on high for 5 to 6 hours, until the meat is fork-tender and pulling away from the bone.
Carefully transfer the ribs to a plate and tent with foil. Remove the herb stems and bay leaves from the Crockpot. Tilt the Crockpot and skim the fat from the surface of the liquid with a wide spoon, going over it a few times until most of the shiny layer is gone. This is what keeps the sauce rich instead of greasy. Pour the remaining liquid and vegetables into a saucepan and simmer over medium-high heat for 10 to 15 minutes, until reduced and glossy enough to coat a spoon. For a smooth sauce, blend it with an immersion blender first. Taste and season with salt and pepper, then return the ribs to the sauce to rewarm.