Make queueing a command asynchronous

Don't run in the same connection, run when idle instead
to prevent blocking.
Hide all output from which(1)