Вы можете сделать что-то вроде:
(defun my-send-cmd (proc str)
(if (process-get proc 'my-waiting)
(process-put proc 'my-pending (append (process-get proc 'my-pending) (list str)))
(process-put proc 'my-waiting t)
(process-send-string proc str)))
, затем в фильтре процесса, когда вы получите ответ на команду, отметьте `my-pending 'и, если не nil, возьмите первый аргумент, отправьте его в процесс, в противном случае установите my-ожидание обратно на ноль.Конечно, это предполагает, что каждая команда получит ответ от сервера, и что вы не можете выполнять потоковую передачу команд.
При этом поведение, которое вы видите, должно, вероятно, рассматриваться как ошибка или, по крайней мере, какошибка, поэтому сообщите об этом с помощью Mx report-emacs-bug.