On the APM side, you would need to change the Inactivity Timeout: If there is no activity (defined by the Session Update Threshold and Session Update Window settings in the Network Access configuration) between the client and server within the specified threshold time, the system closes the current session. By default, the timeout is 900 seconds. However, if an inactivity timeout value is set, when server traffic exceeds the specified threshold, the inactivity timeout is reset. To disable the inactivity timeout, set the Inactivity Timeout to 0.
On the iOS side, I'm not 100% of the behaviour when the device goes to sleep, I would assume the VPN would disconnect and would require another On-Demand request to re-establish.