Jelou
Me atrevo a decirte que el problema lo tenes en el intervalo, cuando la peli se empieza a cargar crea el intervalo, que recien lo borra cuando el mc se carga totalkmente, entonces si el mc no se carga totalmente el intervalo hiloPrecarga queda "abierto".
Probá cambiando el
Cita: if (cargados == total) {
clearInterval(hiloPrecarga);
play();
}
por un simple
Cita: if (cargados >= total){
play();
}
y obvio tampoco iria el intervalo
Suerte!