I've been working on a simple script designed to keep my avatar from being bumped around by griefers or idiots. Its partially working at the moment, but I was hoping for advice on two points.
a)
The script attempts to lock my avatar in place if its speed is greater than some set limit (currently 20 m/s). I've noticed that once every couple of minutes, the script reports an excess speed and applies the lock for a second, then returns back to its corrected unlocked state. It looks to me like llGetVel is occasionally getting rogue bad values. Has anyone else observed this, and is it simply a lag/timing issue?
I could trigger my locks from an averaged rather than instantaneous speed to smooth out the fluctuations, but that would also delay the response, which might be fatal when someone is trying to orbit me.

b)
The actual locking code I'm using is trivial: llMoveToTarget(llGetPos(), 0.1). I got a friend to apply an orbiter cage to me, and though I didn't get blasted into the stratosphere, I did get moved around a bit. Is there a more powerful means of locking position than llMoveToTarget? (Apart from the obvious non-physical route of sitting down, etc.)
Thanks for reading this, and for any suggestions you might have.