I predict that Apple will come out with a background-task API that puts hard realtime constraints on the work a background thread does.  Basically, you register a block of code as a background task, and select an Apple defined "level of service."  If your code block doesn't complete during the time interval allotted to it, then the dev is SOL.<p>If they did this, they could have background tasks that would satisfy 80 to 90% of what devs want to do, but preserve battery life.