client/server: track and handle command timeouts