Because finishes activates only when the spell finished casting (depends on the unit's cast backswing and cast point I think), in which case if the unit is issued another order like stop or attack or whatever while it is still casting (even if the effect already took place), then spell won't be finished casting so the trigger won't fire... If you want to know how long a spell is cast, make your unit cast it and don't issue another order, take a look at the icon and you can know that its is finished when the greenish border around the icon is removed...
I just thought that it was a circle model... ^_^