As a general rule for all scripts most languages will keep looping the same script untill a it is told to stop or change. this part of the code
Code:
    pUnit:RemoveEvents()
found at the first thing once it sees the units health has hit below 50% this will remove all actions before it and run only the 50% ones.So i think the short answer is this the script reads all lines of code in order so imputing it once would only work. So far this script should work if it had a baseline trigger. Hope this helps.