Я подключаю длл.
Программа не на сях может вызывать функции из длл т. к. сама она все описанное в длл сделать не может.
Нужно внутри длл создать поток, который не блокируя работу основной программы выполнял рутинную отправку байт в порт без задержек.
При наступлении момента X - внешняя программа опрашивает через длл о завершенности обработки данных в потоке и в случае успеха отправляет новую порцию данных.