Hello,
We have found iOS to be particularly difficult to work with in this regard. There are many use cases for maintaining a BLE connection for streaming data and especially for notifying a server of events. Think about heart rate monitors, security systems, car diagnostics, you name it.
On Android OS, there is no such restriction and seemingly battery life doesn't seem to suffer. Our users love our Android Apps, but on iOS they complain about missing data and lost connections. I just need to tell them it's an iPhone thing and if they want a better experience, until Apple changes this old restriction for BLE / Server connections in the background, to deal with it or move onto an Android phone.
CPU's are incredibly efficient these days so honestly pinging a server over BLE or maintaining a connection in the background between the device and server is actually incredibly resource light.
What's not resource light, is how you can prevent iOS from killing your app...
What we found has worked, is to constantly send characteristic writes every few seconds from the device to the iPhone to keep the BLE connection active and your app awake. You probably can't connect to your server though, incredibly frustrating. This is an unfortunate workaround because, if you think about it, it is actually making the user experience worse and the battery drain (although quite small) more prevalent by keeping the BLE connection more active and not switching to a higher sniff sub rating or longer connection interval.
When you factor in the large ram size of today's iPhones, this issue should really be a non-starter.