I've been selfhosting my email for around 3 decades. Currently hosting for free thanks to Oracle Cloud's generous always free resources. Running Wireguard there, then it routes ports I've designated over Wireguard to my home machine.
I no longer use a tool like Spamassassin, I use postfix's config files to block repeat offenders and I have my own tool I wrote that checks things spam checkers don't.
Oracle constantly kills my free instance, it's not reliable without frequent manual intervention. It's more like a "try it, see for yourself, we have a real cloud, but no guarantees" freebie toy.
I know they absolutely do cull free instances to make capacity for paying customers.
Afaik they do but only for low system ressource usage.
Anecdotally I had my test free instance culled years ago. But later I deployed a minecraft server (higher baseline ram+cpu use than a web server or small app) and they never culled it (3+ years uptime until a friend reminded me of the server and I updated/restarted it)
You have to upgrade your account to Pay As You Go. I read that and did it from the start. Never shut down. So many people run BOINC and all kinds of nonsense to keep the CPU busy when they don't have to.