У меня тоже несколько потоков через COM-порт общаются с оборудованием. Когда один из потоков вызывает функцию передачи пакета, осуществляется вход в критическую секцию. После получения ответа от устройства выходим из критической секции. Между этими двумя событиями никакой другой поток не сможет повторно выполнить функцию передачи пакета.