All of openHAB doesn’t wait for 20 seconds. Just that one rule. All your other rules and everything else will continue to run.
However, if you need to process the rest of that rule without waiting then you can apply the Separation of Behaviors Design Pattern. the tl;dr is to send a command to an unbound Item which triggers a rule to make the http request.
That being said, given your stated goal, what did you hope to accomplish by catching the TimeoutException? Even if the Action threw the exception back into the rule you would still have had to wait the 20 seconds in order to catch it.
That is why I sent you to a posting with an actual working example. Which, now that I’m not on my phone I can more easily provide the actual link: