atomic_move fixes

changed atomic_move to be more 'optimistic' which helps deal with corner cases and avoid usless work.