Keep track of the idle callback

This way we can prevent the user applications from attempting to
perform multiple system events at the same time. The additional
attempts will fail.