Apple have full control over process scheduling so there is absolutely no reason that it should compromise the experience at all. They could notify the app it's about to go into the background so that resource-intensive tasks can be paused, then severely limit CPU shares to preserve battery life and then notify it again when it's about to hit the foreground. That would be enough just to keep application state in memory or socket connections alive.