Season the lamb. Preheat oven to 300 F. Season lamb on all sides with Kosher salt and black pepper.
Sear the leg of lamb. Heat a large dutch oven or other heavy bottom pot over high heat until very hot, about 4 minutes. Add 4 Tbsp olive oil, then sear lamb on all sides, about 12 minutes total. Transfer lamb to a plate.
Add remaining ingredients. Add white wine, chicken stock, garlic, rosemary, onions, and lemon zest, then use a wooden spatula to scrape any brown bits off the bottom of the pan.
Roast the lamb. Place lamb leg back in the pot, cover with a lid, then cook for 4 hours, basting the lamb with sauce every hour.
Allow the meat to rest. Carefully transfer the lamb to a platter (it will fall apart!), then let rest about 10 minutes.
Reduce the sauce. Meanwhile, strain the lamb jus into a sauce pan. Bring to a boil, then lower the heat to a simmer. Taste and adjust seasoning as needed, then reduce until thick, about 10 minutes.
Shred the leg of lamb. Shred or pull apart lamb with two forks, then transfer to a platter. Serve with sauce on the side.