RPCClient should take an AbortSignal as a constructor option to close() on abort. This would simplify some workflows.