Actually, no. You can't check negative damage values using "damage" or "getdamage" -> if you set the damage to, say, -100, it will still show up as 0. As to a looping script: I'm sure that'd work, why not. But the "hit" eventHandler also works.
However be advised it IS buggy. Here's the thread where it was previously discussed:
Making units tougherIn my testing I came to the conclusion that this is not really a viable solution because:
a) the "hit" eventhandler isn't handled well by many units at a time
b) quick, consecutive and high-damage hits are sometimes too fast for the game to keep up with, and once the magical threshold of "damage == 1" is passed, the unit can by no means be revived.
But for one unit that needs to be invincible for whatever reason: sure, why not?
Wolfrug out.