In a large bowl, combine the chicken pieces with the yogurt, lemon juice, 1/2 teaspoon turmeric, 1 tablespoon garam masala, 3/4 teaspoon chili powder, 1 teaspoon cumin, 2 teaspoons grated ginger, and 3 cloves minced garlic. Mix to coat and marinate for 20 minutes.
Heat the vegetable oil and 1 tablespoon butter in a large skillet over medium heat. Add the finely chopped onion and cook, stirring occasionally, until softened, about 5 minutes.
Add the remaining grated ginger and minced garlic to the onions and cook for about 30 seconds until fragrant.
Stir in the remaining 1 tablespoon garam masala, remaining 1/2 teaspoon turmeric, and remaining 1 teaspoon cumin. Add the tomato paste, cayenne pepper, 1/4 cup water, salt to taste, and optional sugar. Bring to a gentle simmer and cook about 10 minutes until the sauce thickens slightly.
Meanwhile, in a separate pan, melt the remaining 1 tablespoon butter over medium heat. Add the marinated chicken and sear, turning occasionally, until lightly browned on the outside, about 5 minutes; it does not need to be fully cooked.
Transfer the seared chicken into the sauce. Stir to combine, then simmer for about 10 minutes, or until the chicken is cooked through and tender.
Stir in the heavy cream and simmer 1 minute more to warm through. Taste and adjust salt, chili, or cayenne as desired.
Garnish with chopped fresh cilantro and serve.