OK, depois de algumas horas de luta, consegui voltar a funcionar.
Encontrei um arquivo app.yml antigo e o substituí, apenas excluindo as referências antigas a plugins que desde então foram incorporados ao Discourse.
Este arquivo app.yml mais antigo não continha o código abaixo, que encontrei em um posterior.
after_ssl:
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d www.nzarchitecture.net.nz --keylength"
Não me lembro de ter colocado esse código lá, embora eu tivesse configurado meu site para usar letsencrypt para os certificados de segurança gratuitos, mas as instruções em Set up HTTPS support with Let's Encrypt não parecem exigir essas linhas, então não faço ideia para que teriam servido.
Alguma outra coisa poderia ter potencialmente gravado essas linhas no app.yml? Por exemplo, poderiam ter sido adicionadas durante uma atualização beta?
Pelo menos por enquanto, com essas linhas removidas, meu site está funcionando novamente e atualizado.
Quando meu certificado SSL atual expirar, acho que descobrirei para que serviam essas linhas extras.