The outbound dispatcher here seems like a prime candidate to write in a different language (Go for instance). Presumably it just makes HTTP requests so can be very simple -- building the request payload for instance could still happen in Python. And as you use Celery you already have a message queue over which it could communicate with the rest of your application.
This seems like a perfect case for something like Elixir/Erlang where you can spawn multiple processes and need not worry because of immutability.
As a complete tangeant, I find that Zapier's UI is what holds back my usage of it.<p>They added folders which is fantastic.<p>But editing a Zap is slow in the UI. I can't open a Zap into a new tab by Ctrl+Clicking the Zap title. Lots of Zap management is checking one zap's setup, and adding that configuration in turn to another zap.
"accessing a global variable"<p>Um. What? Why do you have global variables for your celery tasks? They should be idempotent and small.<p>Also, even your http requests should be globally stateless as that is the nature of http.