Mix all marinade ingredients and add the marinade to the lamb. Turn to coat and set aside to marinate in a refrigerator for 24 hours.
In a frying pan dry-roast over a medium heat all the spices for the masala paste except the red chili and mace powder: cinnamon stick and black cardamom for 3 minutes; green cardamom, cloves, coriander seeds and black peppercorns for 2 minutes; cumin for 1 minute; fenugreek seeds and dry fenugreek leaves for half a minute. Let the spices cool. When cool pound them into a fine powder and mix them with red chili powder, mace powder and some water to make a paste.
Heat the ghee in a large deep frying pan and add the chopped onions, sugar, and salt. Cook the onions over medium heat, stirring frequently, until softened and deep, rich brown. Add the masala paste and fry stirring continuously for a few minutes over medium-high heat until the oil separates from the masala. Add the lamb, together with the marinade, and stir-fry over high heat for 3-5 minutes until well browned. Now add the lamb stock and cook over medium-low heat until the meat is tender and almost all the gravy has dried up.
Add salt to taste.
Serve hot, sprinkled with garam masala and fried onion.