Eu não tenho nenhuma experiência prática com o upstart, então peço desculpas se a sintaxe upstart estiver errada, mas o script real deve ser sólido. Tudo o que ele faz é dar uma volta, verificando se o serviço teamspeak está em execução (aguardando 5 segundos entre verificações) antes de iniciar o serviço tsbot.
script
while true; do
if [[ $(pgrep teamspeak) ]]; then
systemctl start tsbot.service
break
fi
sleep 5
done
end script