Você tem dois problemas: você precisa identificar quando uma das crianças interessantes é feita e você precisa matar todas elas.
O primeiro significa que você não pode usar o "wait" embutido, porque ele irá esperar por todos filhos (ou todos os listados, se houver), não para nenhum . Sua sugestão baseada em USR1 funciona bem para isso (e para EXIT).
O segundo é muito mais difícil: como você está usando o sudo, você não tem permissão para enviar um sinal para os processos; para enviar um sinal para um processo, o seu ID do usuário deve corresponder ou você deve ser root.
Você poderia tentar usar sinalização baseada em sistema de arquivos ou manipulador de arquivos ou algo assim, mas francamente, isso será muito mais compreensível e legível e sustentável em alguma outra linguagem de script (python, perl, o que for), e mesmo assim é muito complicado. Provavelmente, é melhor você executar o script inteiro sob o usuário de destino.