Такие заморочки с обменом встречалось раньше и в ДОС-приложениях. (В компиляторах присутствовал OPTION-настройка буфера обмена, как правило от 2048 байт до 32767, коррелируемая со скоростью обмена по RXD). Изредко, но приходилось закрывать ,читая( этими блоками) данные и открывать заново. Спасало очень хорошо.