Something similar to the OP is now possible.
We recently added a “staff writes only” mode - it’s a readonly mode that only affects non-staff. It allows staff to login, post, change settings, etc, while other users see a site that is effectively in readonly mode.
Usage
To enable, from the console, run:
Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
and to disable:
Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
I hope this is useful to you! Let me know if you have any questions.