Only throw FileExistsException if createFileOnly(). This won't affect completion to disk as it always has createFileOnly, so it doesn't explain TheSeeker's bug, but it might be an issue elsewhere.
Factor out FileUtil.renameToMustNotExist and use FileUtil.renameTo in the non-createFileOnly case.