Right now I'm trying doing it by having UseMagic packages that will only cast if the previous effect is present, and the one that adds the effect is conditioned not to fire if the NPC already has cast the spell. Problem is, the NPC will try to refire the first spell, then seemingly realize the conditions are wrong, and then he stands there like an idiot with the first spell ready to cast rather than moving on to the second.