Combine oil, soy sauce, cornstarch, cumin powder, chili powder, and salt in a small bowl. Mix well.
Trim fat from the lamb meat if necessary. Cut lean part into 1.5-cm (0.5-inch) cubes. Cut fat into thin pieces half the size of the lean pieces.
Thread lamb cubes closely onto skewers, alternating between lean meat and fat cubes (*see footnote 2).
Spread onion inside a 1-gallon ziploc bag. Place lamb skewers on top of the onion. Pour the marinade over the lamb. Massage the bag so the lamb is covered evenly with the marinade. Seal both sides of the bag and place upside down, the onions facing up. Let marinate for 30 minutes at room temperature or overnight in the fridge.
Build a modified two zone fire, and leave some space without any coal.
Transfer the lamb skewers onto the grilling grate, one finger’s width apart. Flip frequently until the lamb turns dark brown on all surfaces. Move to indirect fire. Generously sprinkle a layer cumin powder, then chili powder (or you can skip the chili powder if you don’t want the lamb to be too spicy). Flip, then sprinkle another layer of cumin powder. Sprinkle whole cumin seeds onto the lamb for extra flavor, if using. Grill until the meat is cooked through.
Serve immediately. Or move to the side of the grill without coal to keep warm.