30秒毎にサーバーへ端末の位置情報を送信するアプリを作成しています。
アプリが終了されない限り送り続けたく、
電源OFF→ON後もアプリはバックグラウンドに存在する状態であれば
送信し続けたいと考えております。

ただ、下記パターンのOFF方法から復帰(電源ON)時、
iPhone、iPadとで挙動の違いがあるようです。

1.アプリがフォアグラウンド状態で電源OFF(スリープボタン長押し)
2.アプリがバックグラウンド状態で電源OFF
3.アプリがフォアグラウンド状態で強制電源OFF(ホーム+スリープボタン長押し)
4.アプリがバックグラウンド状態で強制電源OFF

これらを行った後の再起動後、
iPhone、iPad共にバックグラウンドにはアプリが存在し、
iPhoneはサーバーへ位置情報を送信するのですが、
iPadは1の手順以外、バックグラウンドにはアプリは居るものの、
送信されたり、されなかったりします。
考えられる原因や、問題点などご教示いただけないでしょうか。

AppDelegate内では以下を行ってます。
applicationWillResignActive
 stopUpdatingLocationでStandard Location Service停止。
 startMonitoringSignificantLocationChangesで基地局ベースに切り替え。
 
applicationDidEnterBackground
 stopMonitoringSignificantLocationChangesで停止
 stopUpdatingLocationでStandard Location Service停止。
 startLocationServiceでモニタリング開始
 
applicationWillTerminate
 stopUpdatingLocationでStandard Location Service停止。
 startMonitoringSignificantLocationChangesで基地局ベースに切り替え。
 
willFinishLaunchingWithOptions
 [[CLLocationManager alloc] init]を行い、
 startMonitoringSignificantLocationChangesを実施。
 [NSTimer scheduledTimerWithTimeInterval:30.0f … にて、30秒毎にメソッドを呼び出しています。
 
iPhoneでは、didUpdateLocationsも呼び出され、30秒毎に該当の処理をしてくれます。
 
 
参考サイトとして、
applicationDidEnterBackground、applicationWillTerminate
に関しては下記を参考にし、
http://mb.cloud.nifty.com/doc/tutorial/geolocation-push-notification2.html
applicationWillTerminateが呼ばれていないようにも見えたので(ログを仕込んで確認)、
applicationWillTerminateと同じことをapplicationWillResignActiveで実施してます。

willFinishLaunchingWithOptionsは、
iOSアプリ終了時の位置情報取得について。SignificantLocationChanges
を参考にしています。

iPhone、iPad共に、OSは9.3.5です。