Heat grill to high and add a cast iron pan on grill grates to preheat.
Place a cast iron pan on the grill. Divide the meat into 4 equal portions (8-ounces each). Form each portion loosely into a 3/4-inch burger and make a deep depression in the center with your thumb. Brush each burger with oil and season with salt and pepper on both sides.
Place the burger in the cast iron pan, or directly on the grill, until slightly charred on both sides and cooked to desired doneness. Brush the burgers with the BBQ sauce and add 2 slices of cheese to each burger during the last minute of cooking. Close the lid to melt the cheese.
Place the burgers onto the toasted buns. Top each with bacon, onion rings, and top bun. Skewer with wooden skewer, if needed.
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 ketchup and water, bring to a boil and simmer for 5 minutes. Add the remaining ingredients, salt and pepper, to taste, and simmer for an additional 10 minutes until thickened, stirring occasionally.
Transfer the mixture to a food processor and puree until smooth, season with salt and pepper, if necessary. 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.
Heat the oil in a large saucepan over medium heat until it reaches 360 degrees F on a deep-fry thermometer. Line a baking sheet with paper towels and set aside.
While the oil is heating, put the buttermilk in a large baking dish and season liberally with salt and pepper. Divide the flour between 2 large baking dishes and season both dishes liberally with salt and pepper and cayenne.
Working in batches, dredge some of the onion rings in 1 of the dishes of flour and tap off the excess. Dip the rings in the buttermilk and allow excess to drain off and then dredge the rings in the second dish of flour making sure to coat the rings evenly. Tap off excess and put into the hot oil. Fry the rings until golden brown and tender, turning once or twice, about 4 minutes. Remove with a slotted spoon and drain on the baking sheet lined with paper towels and season with more salt. Repeat with remaining onion rings.