address filehandle/event leak in async run_job invocations
address filehandle/event leak in async run_job invocations

extending on the idea used in #32145, when _check_pub_data is called it it will
create jid subscriptions, regardless of whether anyone will ever come back to
retrieve them; in the case of local_async calls noone ever does.
In addition to the above, we use the listen kwarg provided by c59a5adb0d to
know whether we need to subscribe to events in addition to ensuring the ioloop
is listening before a call is made.
This should fix #40245, #20639, #36374

saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt