I usually use a timer to simulate threads (old VB6 trick).
Instead of calling the server function directly, you can set a timer to 0.5 seconds, then call the server function from the timer event. This alone ensures that two server calls don’t happen closer than 0.5 seconds. Then you can add some logic inside the timer event handler to make other decisions.