It's worse when your app requires to maintain a constant connection to a server in order to function - when the app suspends good luck knowing when that connection will be closed, even with an extended execution!
An ExtendedExecutionSession with a SavingData reason, should be more than enough for any kind of data.