Thank you very much,
I worked on this on and off for a long time, and had to come up with a lot of unorthodox techniques to get everything working. I'm thinking about writing a blog entry explaining the code, as I've had someone ask about how the systems work.
As for the invaders speeding up, that was actually one of the simpler things to implement. There's a constant value --in this case 3-- that is divided by the number of invaders remaining to give the distance they move horizontally each frame. When only one is left, it's going 45 times as fast as it did to start.