Mesmo que a documentação que eu tenha lido diz que o upstart não deveria funcionar dessa maneira, eu tive que colocar o comando em um bloco 'post-start script' em vez de um bloco regular de 'script'.
Então:
post-start script
su skerit -c 'vnc4server :0 -geometry 1024x768'
end script
Isso fez o truque