Mix together the ingredients for the marinade and coat the chicken pieces liberally. Cover and refrigerate for at least 2 hours.
Make a fine paste with ginger, garlic and green chilies. Set aside.
Fry the sliced onion in 3-4 tbsp oil till golden brown and crisp. Remove with a slotted spoon and drain on paper towels. Set aside.
Heat the rest of the oil in a large thick-bottomed pan. Add bay leaves, cinnamon, cardamom, cloves and mace. Allow to crackle and become fragrant. Now add the onion paste and sauté on medium heat till thick and light golden, 15-20 minutes.
Add ginger-garlic-chili paste and sauté for a couple of minutes till cooked. Add the fried onion (reserving 2 tbsp for later) and tomato paste. Mix well, stir, and cook till you see the oil starting to separate at the sides.
Now add the marinated chicken and any leftover marinade juices. Toss with the masala and cook on medium-high for a few minutes to seal the meat juices.
Add the powdered cashews and stir well to combine. Add a cup of water and check seasoning. Cover and cook on low till chicken is tender, around 30 minutes. Open lid and reduce gravy further if desired. Ideally, the curry should be very thick.
Sprinkle the reserved fried onions, chopped cilantro and lemon juice on top.