Acho que encontrei o problema. Eu tinha isso:
after_ssl:
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d example.com -d www.example.com --keylength"
Quando deveria ter:
after_ssl:
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d example.com --keylength"
Note a última linha: eu tinha example.com e www.example.com.
Também alterei return 301 https://$host$request_uri; para return 301 $scheme://$host$request_uri;. Após uma nova compilação, parece que está funcionando.
Agora, estou apenas preocupado com o que @Stephen mencionou sobre isso quebrar quando a configuração do Let’s Encrypt mudar.