Итак, цикл обновления 50мс. В принципе, не слишком маленький. Настоятельно советую в данном случае ограничить количество циклов. Т.е вычисления должны быть групповыми и выдача сигнала одна на плату. Чтобы выдача не подтормаживала, необходимо развязать ее от графического интерфейса, т.е никаких излишеств, обращений к свойствам контролов и т.п.
Что касается задержки. Почитал я хелп... У меня нет сейчас под рукой платы, чтобы проверить. Итак, есть такой вход "таймаут" он ожидает, пока данные не будут записаны в таск. Поэтому для низкоуровневой синхронизации можно попробовать буфер... уменьшить до 10000..15000 точек (50..70% вашей выдачи). И назначить таймаут в пределах 100..1000 мс. Тогда функция сама будет ждать, пока буфер не освободится.