O problema que você está encontrando parece ser com a seguinte opção:
startsecs = 3
Se você ler o manual do supervisord, você pode ver que o startsecs define por quanto tempo o processo deve permanecer ativo após uma inicialização para que o Supervisord considere o início bem-sucedido. Seu processo provavelmente está saindo antes de 3 segundos, o que sugere para supervisionar que a inicialização não foi bem-sucedida.
Tente reduzir isso para 0, a menos que você tenha um motivo real para mantê-lo por 3 segundos.