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