add --command-timeout server arg

so the server can set its own default timeout.
also, clean up some of the command timeout logic