If you are triggering a system suspend from idle (I assume all cpus
idle), you also have to consider when to resume. You cannot abort
suspend just because a cpu is not idle anymore, since suspend itself
will wake up threads.
How do you ever enter suspend in this system? Currently timers in the
kernel and trusted user space code causes a significant power draw and
you want insignificant timers to prevent suspend.
A wakelock is active when the screen is on.