NOTE: If you are passing around Worker.t's, keep in mind that a large
connection state init arg means you are passing around a lot of data.
run t and run_exn t will connect to t if there is not already a connection,
but if there is currently a connection that has gone stale, they will fail with an
error. Trying again will attempt a reconnection.
Using these functions will not result in on_failure reporting a closed
connection, unlike running the shutdown function.