Ok, so 1000 pulses at 500Hz would take 2 seconds. So obviously, that should produce that warning. 1000 pulses at 50kHz is exactly 20msec. So if your loop was running at 20 msec, that would leave no time for anything else in the loop to execute, like the DAQmx Start Task, the DAQmx Stop Task, the DAQmx Timing, any processing, etc. On a Windows operating system, this is definitely not going to be possible. I might suggest a couple different options, slow down your loop, or clear the warning, and live with missing a few pulses. I've demonstrated the second in the attached VI.
-Alan A.