If anyone's looking for a way to llSleep() their script, but don't want to prevent event queues from mounting up during this time-period, I made a function that you can just plop into your code and use in the same way as llSleep() and it'll get rid of the nastiest part of that function.
It'll also work over midnight time crossings, so you can use it at any time, anywhere, and it'll function exactly as expected, to a very accurate measurement (less than 0.00000001 seconds inaccuracy).
llWait(float wait_time)
{
float start_time = llGetGMTclock();
while(TRUE)
{
float current_time = llGetGMTclock();
if(current_time >= start_time)
{
if(current_time - start_time >= wait_time)
return;
}
else
{
if( (86400.0 - start_time) + current_time >= wait_time )
return;
}
}
}