Rob,
I am glad you have been able to resolve the majority of your issues. With regards to point #2, I wanted to make sure that you were aware of the fact that an NI 6601 can perform multiple buffered operations simultaneously, but you will need to use interrupts with the additional counters, as opposed to DMA.
With regards to your last question, if the requested amount of data is available when Counter Read Buffer.vi is called, it should take very little time to execute. Otherwise, the VI will wait until the data is available or the time limit expires. I would suggest that you review the value you have wired to the number to read input. Most likely, lowering this value will solve the problem.
Spencer S.