Fix: Sometimes reactor does not find runner function (#33460)
Fix: Sometimes reactor does not find runner function (#33460)

salt/utils/reactor.py:
- The reactor currently spawns a thread for each reaction. Previously, the
runner symbols were loaded in the spawned threads when iterated via
`verify_fun()` in `salt.client.mixins.SyncClientMixin._low()`. This
sometimes caused race conditions when two threads were trying to handle
a similar reactor (eg presence events) and hence were both invoking
`verify_fun`. The second thread sometimes would not be able to find the
module function and fail. Now we load the module functions before
spawning the thread.
- Do the same thing for wheel functions since it seems to have the
exact same race condition.

Signed-off-by: Sergey Kizunov <dfddabaa9af05982b01940b837a87844148069c9@ni.com>
saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt