Reinstate the catch/loop/throw idiom in eglot-request
This reverts parts of commit
fabee14ed5b32c30c6ac5cb1ce88f387522a6a1e.
Unfortunately, this may cause problems when calling the error
callbacks directly as in the process sentinel. In that particular
scenario the accept-process-output won't have return, because no
output has is being handled. Consequently, if we're unlucky, we have
another 30 seconds to way before the flag is tested and the loop
exits.
* eglot.el (eglot-request): Use catch/loop/throw again