Ah, the normal workaround we suggest is to use a single org via GRIST_SINGLE_ORG - in that configuration, even though personal orgs are created, they are inaccessible. But that doesn’t work for you.
This is a very reasonable feature request. The implementation of your solution number 2 would I think also be quite easy, a small intervention based on a flag around here should do it:
If you file an issue for the feature on grist-core, I can get it in the queue for Grist Labs developer time, and also tag it with good-first-issue in case someone else has capacity and interest.