umm.. don't have an exact or good answer for ur query, but here's something that we can use....
After a screen is rendered, suspend painting and note the time or start timer.
When a key is fired and paint is called.. check if painting suspended. If suspended, calculate the time from when it was suspended and compare with the timeout duration. You may resume painting if timeout is not exceeded.
I think this suspend-resume and checking isSuspended etc. can be checked with listener too..
am not sure if this works...Just knew the APIs so thought of this.
isSuspended, suspendPainting etc. are available in UIApplication.
Will let u know if i have a cleaner way to do this