Heat the oil over medium-high heat in a heavy-bottomed medium saucepan. Add the onions and cook until soft, 3 to 4 minutes. Add the garlic and cook for 1 minute. Add the tomatoes and water, bring to a boil and simmer for 10 minutes. Add the remaining ingredients and simmer for an additional 30 to 40 minutes until thickened, stirring occasionally.
Transfer the mixture to a food processor and puree until smooth, season with salt and pepper, to taste. Pour into a bowl and allow to cool at room temperature. Sauce will keep for 1 week in the refrigerator stored in a tightly sealed container.
For the cole slaw:
Whisk together the mayonnaise, onion, sugar, celery seeds, vinegar and salt and pepper in a large bowl. Add the cabbage and carrot and stir to combine, season with more salt and pepper, if needed. Let sit at least 15 minutes before serving.
For the hot dogs:
Heat the grill to high.
Grill dogs until golden brown on all sides, about 7 minutes. Remove to a plate. Place buns on the grill cut side down and grill until lightly golden brown, about 20 seconds. Place hot dogs in the buns and brush dogs with BBQ sauce, top with coleslaw and pickle.