Mix beer, mustard, honey, Worcestershire sauce, garlic, cayenne pepper, and salt in a bowl until honey is dissolved. Pour a small amount of the beer marinade into a slow cooker; add pork. Pour remaining marinade over pork. Cover and refrigerate overnight, turning pork occasionally.
Cook pork on Low in the slow cooker for 8 hours, basting occasionally. Add water if the pork becomes dry. Drop onion around pork and continue to cook until pork is very tender, about 2 hours more.
Pull and shred pork with two forks, discarding any pieces of fat. Transfer pork to a serving dish. Skim remaining onion from the slow cooker using a sieve and add to pork.