Marinate (Optional but Recommended): In a small bowl, whisk together soy sauce, honey, Worcestershire sauce, and black pepper. Place the flank steak in a zip-top bag or shallow dish and pour half of the marinade over it. Let it sit for at least 30 minutes, or up to 4 hours in the fridge.
Sear the Steak: Pat the steak dry with paper towels. Heat olive oil in a large skillet over medium-high heat. Sear the steak for 2-3 minutes per side until a deep brown crust forms. Transfer the steak to the slow cooker.
Sauté Aromatics: In the same skillet, add the sliced onion and cook for 3-4 minutes until softened. Add the minced garlic and cook for another minute until fragrant.
Deglaze the Pan: Pour the beef broth and the remaining marinade into the skillet. Scrape the bottom of the pan with a wooden spoon to lift all the flavorful browned bits. Bring to a simmer.
Slow Cook: Pour the onion and sauce mixture over the steak in the slow cooker. Cover and cook on LOW for 4-6 hours or on HIGH for 2-3 hours. The steak is done when it's fork-tender.
Rest and Slice: Remove the steak from the slow cooker and let it rest on a cutting board for 10 minutes. This is crucial for keeping it juicy. Slice thinly against the grain.
Finish the Sauce (Optional): If you prefer a thicker sauce, pour the cooking liquid into a small saucepan. In a separate bowl, whisk together cornstarch and cold water to make a slurry. Slowly whisk the slurry into the sauce over medium heat and simmer until thickened. Pour over the sliced steak and serve.