I assume that the client side script using the value of the public variable directly in the loop? Is that correct?
If so, this might be a long shot but what about a line at or near the beginning of your loop that assigns the public variable to a local variable and thereby theoretically "reloading" it everytime the loops begins again. So, as an example, if the public variable was called "publicValue" then at the beginning of the loop have a line this:
Loop Code:
_localValue = publicValue;
///Insert remainder of loop code here.
If that doesn't work, maybe another way of interupting the loop to get the new value as opposed to exiting and re-ececuting the script. Good luck!