I literally cannot explain any of this at all.

Before this change, the tags file would become unsorted as it was moved
from tags.temp to tags. The header said it was sorted, but the rows were
not in fact sorted. Vim would complain, and if I opened the file in vim
to check, it'd be empty.

I confirmed that if I leave the file at tags.temp, it is and remains
sorted. I also confirmed that if I manually mv it to tags, it is and
remains sorted.

Apparently, the command

  execute ":silent! !mv ..."

Makes a ctags file's entries (only the entries) become unsorted.

The correct command is

  silent! "!mv ..."

Oh, also, this only happens with a bare 'ctags -R'.

If I use 'ctags -R <directory>' everything is again also fine...