Parece que ninguém sabe como fazer isso, então.
Em vez disso, eu apenas fiz o que o Tomcat faz basicamente; escrever um script de shell e invocar isso do meu serviço, em vez de invocar java diretamente.
Este script de shell também cuida da criação do arquivo PID usando echo $! após iniciar a JVM. Para o encerramento, escrevi um script semelhante que verifica esse arquivo PID e o remove após um encerramento bem-sucedido. Ambos os scripts são chamados usando sudo -Eu $USER script_name.sh do serviço.
Tecnicamente, isso não responde à minha pergunta porque a solução não usa startproc , mas funciona e evita a tarefa complicada de comparar as linhas de comando dos processos em execução.