-c copy
diz ao ffmpeg para fazer o streamcopy de todos os fluxos que estão sendo processados. Isso está faltando.
ffmpeg -i aud_only.aac -i vid_only.mp4 -c copy new_mix.mp4
Além disso, para a etapa 2, é melhor extrair para um contêiner como o M4A
ffmpeg -i original.mp4 -vn -acodec copy aud_only.m4a
Se o seu áudio tiver intervalos de timestamp, .aac
os perderá.