Massively improve the best-case scenario for collision performance by taking advantage of persistence - with stationary, largely separated objects we can even get to around 4000 objects before slowdown, and the bottleneck is actually the graphics which, in this scenario, process roughly twice as slow as the collision. With the sprites hidden, I can get roughly 8500 objects before slowdown creeps in. Very nice.
Only sync the object list if it is actually dirty.