I think your main problem is that you are really only getting the data every other cycle. Use the Elements Remaining even when you read data to set the number of samples to grab the next iteration. Also, since you have 4 channels, you should make sure the number of samples you have is divisible by 4. Using Quotient & Remainder and then subtract the remainder works well for that.
In order to save your data faster, you may want to save your data in a binary file instead of a text file. It is less converting and will write the data faster. Of course, you will have to make your own reader to view the data.