Darnit Shilo!! You are saying all of my ideas first xD! Though I will point out that performSelector is not the best way if you want the delay to be pausable. You must use the delayed invocation in that case. For example, I use this method in Pandemic to schedule various actions for the bad guys, but if the user pauses the game I don't want them to replicate, move, etc.
Also beware repeating NSTimers, they are a sneaky cause of memory leaks since they are maintained internally and hold a reference to the object they send messages to, preventing it from being deallocated. I call this semantic memory leaking, since it is not quite the true definition of a leak.