Spray the liner of a slow cooker with nonstick cooking spray. Place the diced onion in the bottom of the slow cooker.
Pat the beef dry with paper towels. Season both sides with garlic powder, salt, and pepper. Place the roast on top of the onion.
In a medium bowl, whisk together the barbecue sauce, Dijon mustard, Worcestershire sauce, and liquid smoke (if using). Pour the sauce over the beef.
Cover and cook on LOW for 8-10 hours or on HIGH for 4-5 hours, until the beef shreds easily with two forks.
Transfer the beef to a cutting board, large bowl, or rimmed baking sheet. Shred with two forks, discarding any large pieces of fat. Return the shredded beef to the slow cooker and stir into the sauce.
Serve on sandwich buns. Top with coleslaw, sliced pickles, or extra barbecue sauce as desired.