I would store triggering unit and last created unit in a variable, just to play it safe. You can always nullify them, anyway.
Thats all that I can see that could be wrong with it, I didnt really do that great of a job reading through though, so if I'm wrong, whatever.