So, I thought I should provide some update on this.
TL;DR: It appears the machine was running out of memory. Increasing memory solved it.
I noticed about a week ago, that I was still running on one of DigitalOcean's legacy plans with 512 MB of RAM, so upgraded to 1 GB. Pihole has been stable since.
I should note that I did switch to using dnsmasq rather than pihole-FTL for DNS resolution in the mean time, and dnsmasq was running stably on 512 MB of memory (as I'd expect it to do, given it really isn't doing much.)
@RamSet / @jfb According to Hardware/Software Requirements 512 MB should've been sufficient. Just as a data point, that for me it didn't run stably at all on 512 MB memory since upgrading to 4.0.