Cambio la combinación de IntentService con Timer por un AlarmManager. En
el primer caso se paraba de enviar al cabo de cierto tiempo.

Añado el cacheo de datos en caso de error. Solo se tiene en cuenta
cuando hay errores al enviar datos por la red ya que si hay error al
tomar la posición el dato que se envía no tiene sentido.