Whisk together brown sugar, paprika, black pepper, salt, garlic powder, onion powder, chili powder, and cayenne powder to make a seasoning rub for the ribs.
Trim the ribs of any excess fat and remove the membrane from the back of the rack. Rub generously with dry rub seasoning on both sides. Wrap the ribs in foil and refrigerate a minimum of 2 hours (optional: refrigerate over-night).
To make the Kansas City BBQ sauce, heat a medium saucepan over medium heat. Melt the butter then add the onion and cook about 5 minutes. Add the garlic and cook until fragrant, about another minute.
Whisk in ketchup, molasses, brown sugar, vinegar, mustard, chili powder, black and cayenne pepper to butter mixture. Bring the saucepan to a boil, then reduce the heat to low and simmer about 30 minutes or until thickened. Be sure to stir frequently. Blend with a hand mixer, if needed, to ensure a smooth sauce.
For low and slow ribs, preheat the grill to 225 degrees F. Place ribs bone side down and cook for 4-5 hours, basting the ribs in the last hour with the barbecue sauce.
For a quicker cook time, preheat the grill to medium or 325-350 degrees F. Place ribs bone side down and good 2.5 - 3 hours, basting the ribs in the last hour with the barbeque sauce.
In a bowl, combine the garlic, salt, brown sugar, smoked paprika, chile powder, black pepper, sage, thyme, dry mustard, cumin, coriander, ginger, and cayenne pepper. Generously coat the ribs with the rub then wrap each slab in a double layer of plastic wrap and let them sit at room temperature for up to 2 hours.
Preheat the oven to 325°F.
Line a large rimmed baking sheet with foil. If you have a flat metal cooling rack, arrange it in the baking sheet and place the ribs, bone side down, on the rack. If you don't have a rack, place the ribs, bone side down, directly on the foil-lined baking sheet. Bake the ribs until the meat is tender and starting to pull away from the bones, 1 1/2 to 2 hours. While ribs bake in oven, prepare the sauce (instructions below).
Depending on the size of your grill, place 1 or 2 slabs, bone side down, over the heat and brush the fat-covered side generously with barbecue sauce. Grill the ribs, covered, for 2 minutes. Flip the slab over, brush the bone side with sauce, and grill, covered, until the sauce on the fat-covered side is caramelized and lightly charred, 1 to 2 minutes. Flip the slab over and continue grilling, covered, until the sauce on the bone side is caramelized and lightly charred, 1 minute. Transfer the ribs to a cutting board and let them rest for 10 minutes. If necessary, repeat the grilling and glazing process with the second slab of ribs. Cut between the ribs and serve immediately with plenty of barbecue sauce on the side.
In a heavy, medium saucepan over moderately low heat, cook the bacon until the fat renders and the bacon starts to brown, about 10 minutes—do not let the bacon get crispy.
Add the onions and continue cooking, covered and stirring occasionally, until the onions are soft and translucent, about 10 minutes.
Add the garlic, sage, and thyme and cook, stirring occasionally, for 1 minute.
Add the smoked paprika, chile powder, cumin, black pepper, and ginger and cook, stirring, for 1 minute.
Add the coffee, brown sugar, yellow mustard, Worcestershire sauce, and vinegar and stir well to combine. Raise the heat to moderate and bring the sauce to a boil, scraping the saucepan with a wooden spoon to remove any browned bits from the bottom.
Add the ketchup, hot sauce, and bay leaves, then lower the heat to moderately low and simmer the sauce until it's thick enough to coat the back of a spoon but isn't as thick as ketchup, about 30 minutes.
Taste the sauce and add more vinegar or hot sauce to taste and season with salt and pepper. Remove and discard the bay leaves.
Prepare the rub. Mix all of the rub ingredients together. Break up the clumps. Taste the rub to make sure you like the taste, adjust accordingly.
Unwrap the pork roast and place it on butcher paper or in a pan that can catch the rub. With clean hands work the rub mixture into and all over the pork shoulder. Be generous with the amount of rub to maximize the flavor of the pork. Wrap it in plastic or butcher paper, place it in a pan and refrigerate overnight.
Place the wood chips into a bowl and cover them with water to soak overnight.
Take pork out of refrigerator and let sit for 1 to 2 hours to bring it to room temperature.
Next, prepare your grill to smoke the pork. Remove one of the grill grates on one side of the grill--this is where the wood chips will go. The pork shoulder will sit on the other half of the grill to cook by indirect heat.
Place an aluminum tray of water on the grill to help moderate the heat and prevent drying of the pork. The best place for it is on the upper rack if you have one.
Next create a double layered aluminum foil boat with a handful of wood chips in it. Place it directly on the burner on the side of the grill without a grate.
Turn the grill on to medium flame, cover the grill and let it heat up until the wood chips start to smoke.
Once the grill is smoking, place the pork on the grill grates away from the direct heat. If the roast has a fatty side, place it facing up. Then cover the grill, lower the flame, and let the cooking begin. The temperature you want to maintain is around 225F.
To maintain the smoke for around 4 hours you will need to check the grill. The temp should stay between 210F-240F. Check to make sure the wood chips are smoking every half hour. Once an hour you will likely need to add more wood chips to the pile. Cooking time for your roast should be 90 minutes per pound. Regular sized 4 pound roast should take at least 6 hours.
After about 2 hours of cooking, reposition the roast so the side facing the heat is positioned away from it.
After 5 hours, check the internal temperature. You can safely eat it at any internal temp above 145°F, but for a great pulled pork it needs to be around 195°F.
When the meat reaches 195°F, remove it from the heat, tent it loosely with foil over a cutting board (to catch the juices) and let it rest for at least 30 minutes. If after 6 hours of cooking the meat hasn't reached 195°F internal temp, try finishing in the oven.
To finish in the oven, wrap the roast in aluminum foil to help prevent it from drying out and place it in a roasting pan set it in the oven at 300°F. Cook until the internal temperature of the roast reaches 195°F. When it reaches temperature, remove the roast from the oven and let rest for at least 30 minutes.
Pull the pork apart with 2 forks. Only now do you add any barbecue sauce (and any accumulated juices) to the meat. Taste it first: It might not need sauce at all, and if it does, add only a little at a time.