time.sleep takes seconds, not millis
Robustified player somewhat
Now handles timeouts better