This question raises several issues. The bounty will go to an answer which addresses them holistically.
Here\'s a problem I\'ve been playing with.
When the distance that an Actor moves in a given timestep exceeds the distance to its furthest known neighbour, resample all neighbours.
Another trigger: when the distance an Actor has moved since the last resample exceeds the distance to the furthest known neighbour, resample.
Trivial optimisation goes well here, if there is a hierarchial spatial index, search for a node containing both a) a sphere of radius equal to the jump size, and b) at least N Actors.