Thomas,
You are making two mistakes here, in my opinion. First, you are asking WAY too much of Windows. When I used windows for my data acquisition systems, I had a very specific manner of installing and configuring the systems. I used Windows 95 (didn't realize NT was better at the time) with NOTHING installed except solitaire to ease my boredom. No network, no IE, no office, nothing. I stripped windows to the bare bones, and had some success.
Windows is not a good choice for your configuration. To ask Windows to run your program, and do anything else is asking for problems.
So, how do you solve the problem? Simple. Port to another operating system AND/OR reduce the system demand. Trying to ask for 1ms response through that system is asking
WAY too much. I don't know how you are even getting ONE sample set. I would suggest that you verify that you ARE getting all of your samples. Try using a Pulse Generator and generating a set number of pulses equal to a few sample sets. Configure your system for the same number of samples, and run it. If it hangs, that's because you didn't receive all of your samples. My suggestion is to increase the number of scans to something that will give you about 1 second, maybe more, of scans.
-Mike