Fix background speed test.

Significant location update method was called twice on the
delegate confusing the app and making the background
task time out. Adapted callback method to explisitly
check for the applications state before funning the
speed test and always ending background task
if it's anything but invalid no matter what the
applications state is.