Hi Marshall,
Add another DIO read to the inside of you loop. Drop it front of the existing. Wire a read count of zero to it.
Take the baclog returned by this new VI and wire it into the "number of scans to read" input instead of your current constant.
Increase you wait time to 500 ms.
Now your VI will sleep for 1/2 second (freeing up CPU) and only read the data that is already sitting in a buffer.
Then it will go back to sleep.
Ben