Put the chicken into a bowl with all of the marinade ingredients. Mix to combine. Set aside covered in the fridge for at least 3 hours or overnight.
Preheat a large frying pan over medium heat and add the butter. Once it starts melting, add in the onion, jalapeno, cinnamon, clove, and the ¼ teaspoon of cumin. Stir and saute for about 10 minutes.
Add in the ginger and garlic and cook about 5 minutes.
Add in the garam masala, cumin, coriander, and chili powder and stir and cook for 2 minutes. Add in the tomatoes and syrup and turn the heat to low. Allow to lightly simmer for 15 minutes.
Pour into a bowl and add in the heavy cream. Use a blender or hand blender to blend until completely smooth. Set aside until ready to use.
Preheat the waffle maker.
Stir all the waffle ingredients together in a large bowl. Add in batches to the waffle maker. Cook a little extra to brown on the outsides. Repeat with remaining batter.
Put the waffles in the oven at a low temp and put the sauce on the stove top at a low temp. This way everything will be warm and ready at the same time.
Preheat frying oil to 350
Put all the chicken dredge ingredients into a bowl or deep plate and stir to combine.
One by one, take a chicken thigh out of the marinade with the marinade coating the chicken still, and dip it into the dredge. Make sure it is really well coated on all sides and in all the crevices.
Gently drop the chicken into the hot oil and fry about 8 minutes until very browned on the outsides. Do as many fit in the oil as you can but be careful not to crowd the fryer. As they come out, add them to the pan in the oven on low with the waffles.
Finally when all the chicken is done, plate the waffles first, then add the chicken on top. Smother in the butter sauce and top with more butter, chili powder, and cilantro
