I think tla--status-handler is not useful in tla--run-tla-async. Documentation for tla--status-handler is broken?
(defun tla--status-handler (output error status arguments)
"returns an integer value represented by STATUS. Candidate as an
argument for one of the keywords :finished, :error or :killed in
`tla--run-tla-sync' or `tla--run-tla-async'."
(cond ((numberp status) status)
((string-match "^exited abnormally with code \\(.*\\)" status)
(string-to-int (match-string 1)))
(t (error status))))
