this is a stop-the-bleeding attempt.  we could later convert this to mockwebserver so that we don't have to rely on arbitrary timeouts (ex. mockwebserver can return socket break iirc)