Preheat the oven to 350 degrees F. Line a sheet pan with aluminum foil.
Place the ribs on the sheet pan meat-side up and sprinkle them with 2 teaspoons salt and 1 teaspoon pepper. Pour the barbecue sauce generously on each rack and cover the ribs loosely with aluminum foil. Bake for 1 1/2 hours for baby backs and 1 3/4 hours for St. Louis ribs, until the meat is very tender when tested with a fork. As soon as the ribs are out of the oven, spread them generously with additional barbecue sauce. Grill right away or refrigerate to grill later.
About 40 minutes before you want to serve, heat a charcoal grill with a layer of hot coals or heat a gas grill to medium-high heat. After the charcoal turns gray, brush the cooking grate with oil to keep the ribs from sticking. Place the ribs on the grill ribs-side down, put the lid on top (be sure both vents are open!) and grill for 5 minutes. Turn the ribs meat-side down, put the lid back on and grill for another 4 to 5 minutes, until nicely browned. Place on a cutting board and cover tightly with aluminum foil and allow the ribs to rest for 10 minutes. Cut into ribs and serve hot with extra barbecue sauce on the side.
Heat the oil in a large saucepan over low heat, add the onions and cook for 10 to 15 minutes, until the onions are translucent but not browned. Add the garlic and cook for one more minute. Add the tomato paste, vinegar, honey, Worcestershire sauce, mustard, soy sauce, hoisin sauce, chili powder, cumin and pepper flakes.
Bring to a boil, then lower the heat and simmer uncovered for 30 minutes. Use immediately or pour into a container and refrigerate for several weeks.
Photograph by Johnny Miller
Courtesy of Food Network Magazine