I'm stating the obvious here, it's likely you're not missing this :)
Unless you yield processing to other programs, VFP can be a CPU hog.
Particularly in an SQL Select statment (where you can't do anything about it).
If your program is sitting in the background, waiting for something to happen, then don't run code. I wouldn't run in a loop checking time(), or use INKEY().
Instead use a Windows API call to Sleep for a while, to let other programs use the CPU.