Existem vários problemas aqui:
a) embora suas expressões sejam contínuas e uniformes ao longo do tempo, o vídeo é uma série de quadros discretos, portanto, a série real de valores de tempo é quantizada. Assim, a velocidade do seu movimento deve ser um múltiplo integral da taxa de quadros do vídeo, em termos de x-pixels / seg e y-pixels / seg. Dessa forma, o delta x e y em cada quadro é constante, gerando assim um movimento em linha reta. No seu caso, estes diferem quadro a quadro devido ao truncamento.
b) devido a subamostragem de croma , a posição final avaliada da sobreposição está sujeita a um novo arredondamento para um valor par . Assim, calculado (314,6,56,3) será arredondado para (314,56) e (316,8,57,4) será arredondado para (316,56), produzindo assim um movimento horizontal nesse quadro, mesmo que as expressões 'puro delta seja inclinado. A solução é informar sobreposição para saída com amostragem de croma completa e downconvers later later.
Estes problemas estão em jogo durante toda a animação de sobreposição, mas como o vídeo tem uma resolução baixa, a falha é visível. Seu vídeo é de 30 fps, por isso defini deltas xey para múltiplos.
Então,
ffmpeg.exe -y -i small.mp4 -loop 1 -i google.png -filter_complex [1]fade=t=in:st=0.9:d=1,fade=t=out:st=4.6:d=1[over1];[0:v][over1]overlay=x=20+((t-0.9)*60):shortest=1:y=66+((t-0.9)*30):enable='between(t,0.9,5.6)':format=yuv444,format=yuv420p -c:v libx264 output.mp4