This might just be paranoia, but it occurs to me that under rare circumstances this might actually overwrite/delete data, if the target path is something that could be written by another thread (e.g. logging).  If this isn't used anywhere else, and the ATOMIC_MOVE flag works out, then maybe this whole method would go away?