I think they made an optimization (probably using motion sensors), to detect "relatively" stationary positioning of the phone and they stop the location updates. This is only a speculation, but my tests currently show:
- Starting location updates; (tested with accuracy of 10 and 100 meters, 3 times each)
 
- Turn device's screen off to put the app in the background;
 
- Leave the device stationary (e.g. on a desk) for 30 min.
 
The data I log shows the geo-updates stop coming after ~ 15m and 30s. With that all other background processing you do is also terminated.
My device is iPhone 5 with iOS 7.
I am 95% sure, this wasn't the case on iOS 6/6.1. Where getting geo updates with 100m accuracy used to give you pretty much continuous running in background.
Update
If you restart the location manager every 8 minutes, it should run continuously.
Update #2
I haven't tested this in latest, but this is how I restarted it when I wrote the post. I hope this is helpful.
- (void)tryRestartLocationManager
{
    NSTimeInterval now = [[NSDate date] timeIntervalSince1970];
    int seconds = round(floor(now - locationManagerStartTimestamp));
    if ( seconds > (60 * 8) ) {
        [locationManager stopUpdatingLocation];
        [locationManager startUpdatingLocation];
        locationManagerStartTimestamp = now;
    }
}