Wow that is awesome! Good luck!
As for your questions:
1. I bet you could do it with Python or something but I wouldn't be totally sure where to start. Other than that, my first idea would be to animate one, then duplicate it and do a whole row. When you have a row done, you could try duplicating the whole row and offset it a bit to give it the brick pattern. Or something along those lines. I think the key to cutting down the amount of work will be duplicating as much as you can.
2. Haven't done something like that in a while, but I think there is a way to run something in the game engine and have it keyframe all of the objects. Once you have those keyframes you can use the dopesheet to select all of the bricks and move the keyframes after the point you want it paused to sometime later in the timeline.
3. Hard to say, I didn't notice any errors in your video. Mostly a guess here, but it might just be a matter of messing with the vertices individually and merging the ones that are supposed to be one vertex. Sometimes the remove doubles thing doesn't always get them all merged together.