Eu acho que apenas testaria para ver se o arquivo existe, se ele for exibido. Você deve ser capaz de testar a existência de arquivos com bastante facilidade do PHP. Você também pode fazer isso a partir do shell (provavelmente Bash ou Bourne Shell) quando executar a função exec() .
exec('[ -f somefile.png ] && ./zopflipng -y somefile.png somefile.png');
Matando o exec
Para abordar seu outro aspecto da sua pergunta. Se você está perguntando o que acontece quando você usa kill um ou ambos exec através de uma das iterações do loop for em seu programa PHP, então a resposta seria que seu for loop deveria solider e continuar com a próxima iteração sem problemas.
Os exec são processos separados do seu script PHP, portanto, a menos que você os execute e faça algo com os códigos de status que eles retornam, o chamador não deve ser o mais sábio que eles terminaram ou foram mortos.