Ugh! It was a stupid mistake after all, thanks for pointing me in the right direction. I had written the whole address (“discourse.[mydomain].com”) as the host for the A record, but NameCheap requires you to just put the subdomain (“discourse”). Changing that and re-doing ./discourse-setup one last time did the trick.