For the spice mix:
1/2 teaspoon cassia bark pieces (or a 1-inch whole piece)
3 whole green cardamom pods
1/2 teaspoon whole cloves
1/2 teaspoon whole fennel seeds
1/2 teaspoon whole black peppercorns
5 whole Kashmiri chilies (or 1 teaspoon Kashmiri chili powder)
1 whole black cardamom pod (3 seeds only, use the rest for garam masala)
2 teaspoons ground sweet paprika (optional, for color only)
First, make the spice mix. Toast each spice (except for the paprika), one by one, for about 30 - 45 seconds (until fragrant) in a dry skillet over high heat, and transfer to a bowl. Let cool completely, then blend to a fine powder in a spice grinder.
Trim the lamb of excess fat, and then cut into large chunks. Rub the spice mixture into the lamb.
Heat 2 tablespoons of the oil in a large Dutch oven, and sear the lamb pieces on all sides, being careful not to burn the spices. Don't crowd the pan; do this in batches, if necessary. I prefer to do this on a medium-low heat. Transfer to a bowl.
Add the remaining 2 tablespoons of oil to the pan, and add the whole cardamom, cinnamon stick, cloves, peppercorns and fennel seeds. Sauté for 30 seconds, until the spices are fragrant, then add the hot stock, scraping up any browned bits from the bottom of the pot. Cook for one minute.
Return the lamb to the pot. Whisk the cornstarch into the yogurt, then add this to the pot. Stir for a minute, and season with a little salt. Cover the pot and turn the heat down to very low. The sauce should barely be bubbling.
Cook for an hour. After an hour, uncover the pot. Taste and add a little more salt. Continue to cook, uncovered, for an additional 2 hours or until the lamb is very tender and the sauce is reduced.
Meanwhile, heat the last 2 tablespoons of oil in a heavy pan over low heat. Add the onions and 1 teaspoon of sugar. Caramelize the oni