Heat 1 tablespoon peanut oil in a saucepan over medium heat. Stir in the shallot and onion; cook and stir until the onion has softened and turned translucent, about 5 minutes. Add the margarine, lemon juice, ginger, garlic, garam masala, curry powder, chili powder, cumin, and bay leaf. Cook and stir for 1 minute. Stir in the tomato puree and cook for 2 minutes more.
Reduce the heat to low, and mix in the milk and yogurt. Simmer for 10 minutes, stirring frequently. Season to taste with cayenne, salt, and black pepper; remove from heat and set aside.
Heat 1 1/2 teaspoons of peanut oil in a heavy skillet (preferably cast iron) over medium heat. Add the seitan and cook, stirring constantly, for 10 minutes. Reduce the heat to low and season the seitan with 2 teaspoons garam masala and a pinch of cayenne. Stir in about a 1/4 cup of the tomato-yogurt sauce and simmer for 2 to 3 minutes. Transfer the seitan mixture to the saucepan.
Mix the cornstarch and cold water. Return the saucepan to the stove over medium-high heat. Stir the cornstarch mixture into the sauce. Bring to a boil; reduce the heat and simmer until the sauce has thickened, about 5 to 10 minutes.