Seus instintos estão corretos - mais ou menos.
Escreva um comando de arquivo que determine se o servidor Postgres local é atualmente o mestre (maneira fácil: Conecte-se e faça SELECT pg_is_in_recovery();
- Se for verdade, você está em um escravo).
Se você detectar que está no servidor mestre, arquive os segmentos normalmente.
Se você detectar que está em um servidor escravo, não faça nada e saia normalmente.
O truque acima funciona porque você não pode se conectar a um mestre que está em recuperação (com falha) - A única vez em que você poderá se conectar a um servidor Postgres que está no modo de recuperação é quando você se conectou a um escravo com replicação de streaming.
Após o failover, seu escravo será um mestre (e não estará mais no modo de recuperação), portanto, os scripts de arquivamento do WAL poderão fazer o que quiserem.