Ensure that existing known memory regions are sufficiently large when recording the static of a static internal object. If they are not, remove the existing region and create a new appropriately sized region.

This fixes a bug with recording readdir() which, though the pointee object is always the same size (1048 bytes), returns pointers at small increments (24 bytes), causing the regions to overlap.
Cancel graph generation if the state is going to be moved.

Also, libc++'s std::async seems to be working fine now, so remove the alternative path for when _LIBCPP_VERSION is defined.