From your question I gather that the user click on the button invoking the microflow to trigger the webservice call and an error is returned to the user, which you display. The error is being displayed by using the error handler function or is the error a return from the service?
This will happen a second time in the same fashion and only after the third time there is a timeout and the application hangs? My first step would be to investigate the logs and increasing the loglevel of the webservice log node, this might provide some more insight. When the time is only experience after a third time, I suspect the third party to handle this call differently, would investigate that. This should however not hang up the app, Hopefully the logging will provide some more clues.