Se non ho capito male, non ti serve che giri in background costantemente.
Serve che ogni ora (e qui lo fai grazie ad AlarmManager), venga prelevata la posizione e inviata poi stop.
1) ogni ora. Setti AlarmManager in modo da lanciare ogni ora l'intent. E così il broadcast receiver registrato sull'intent lanciato da AlarmManager ogni ora risponderà, imposterà il lock e passerà la palla al punto 2)
2) prelevo la posizione e la invio. il broadcast receiver del punto 1) creerà un thread a parte (solo perchè altrimenti il tempo di esecuzione supera i 5 sec. e ti appare il Force Close e dubito che tu voglia questo, vero?) e questo preleva la posizione, la invierà e rilascierà il wakelock.
Così hai ottimizzato al massimo :P