There's still an immense opportunity to tap unused cycles if you give people another reason to donate their device time. Unfortunately, altruistic purposes don't always appeal to the masses :-)
Of course, the amount you get compensated should feel valuable and commensurate to the "effort" your device expended for this to be worthwhile. It largely boils down to user expectations, but given economics of scale, I'm confident that we can have more than a 1:1 ROI of effort to reward.
Not to mention how hot the damn things could get.
So it's going to cost me electricity and probably shorten the life of my phone - why would I sign up?
The charging circuitry on some phones (not all) actually disengages the battery from the charging circuit path once 100% AC power is reached. In other words your phone's CPU runs off of AC power (and not via the battery) once 100% charge is reached.
Why you would sign up is where it gets interesting - the app works via a similar incentivization scheme as how bitcoin miners work - the more you run the app (mine) the likelier you stumble upon a valid proof of work, and you get rewarded by virtual currency.
http://www.worldcommunitygrid.org/
(although they mention smartphones already)
I've been working on an idea similar to this for a few months. Instead of limiting this to crypto currency mining (a fair application, FWIW), why not approach this with the idea that people plugging in their phones every night could easily constitute the largest distributed supercomputer ever built? Everyone has the same nightly ritual: Wake up, use phone/tablet/device, plug in at night. Once it's plugged in, your phone charges to 100% after a few hours, and then essentially sits there for x hours effectively doing nothing (that's a little sensationalist, but it highlights my point). Folding@Home, et al have done this before, but the silver bullet here is that no one turns off their phone when it charges at night - perhaps to maintain the off chance they receive a random 4 AM phone call.
Now if you can combine this with an SDK (say... something Javascript based) that makes it easy to write/deploy compute jobs/"apps", you have a real distributed computing platform. You can also maintain security by using a similar proof-of-work scheme that bitcoin uses to prevent fraudulent mining.
The real challenge here is incentivizing people to run your app. Here's my sign up form for an early private beta for anyone who is interested.
http://stynt.co