Preheat oven to 300°F (150°C). In a small bowl, stir together brown sugar, garlic powder, onion powder, cumin, pepper, paprika and chili powder (if using). Set aside.
Set pork onto 12-in. (30-cm) piece of heavy-duty foil. Rub oil all over pork. Pat brown sugar mixture all over pork, pressing to adhere mixture. Place onion under and on top of pork. Seal pork, onion and any loose brown sugar mixture tightly in foil. Wrap foil package in another piece of foil to avoid leaks. (Optional: Refrigerate pork to marinate for a few hr. or overnight.) Place foil package in ovenproof dish and roast in preheated oven until meat thermometer inserted into thickest part of meat reads 180°F (82°C), about 2 hr.
Carefully open foil package (avoiding hot steam). Use tongs or two forks to transfer pork, onion and juices to a large bowl. Using two forks, pull pork into shreds. Mix in carrot and barbecue sauce.
Pile pulled pork mixture onto buns and top with coleslaw.
To make ahead, freeze foil-wrapped seasoned pork and onion in airtight container or freezer bag up to 1 month. When ready to use, thaw in fridge overnight – no extra marinating time required – and cook according to recipe directions.