Have you looked at my recently released plugjn?
It’s currently an ad hoc (by command), bot facilitated one way sync Discourse → Discord.
Happy for you to fund expansion if current functionality is too limited, but it’s pretty sophisticated already and you can use it now for free.
There may be a way of allowing only Discord login already.
You can use my required fork of the existing user authorisation plugin straightaway. (PR is pending. Once this is accepted and merged, you can revert to upstream master).
This existing user OAuth plugin auto-approves every person within a provided Guild. You can simply not approve anyone else
There is already a kick command that kicks anyone out of your Discord Server who does not have sufficient Trust Level on the corresponding Discourse.
Currently my plugin uses Discourse as master. You create a Group in Discourse. If you then sync, it will create a Role in Discord and add the members. (non-destructively).
It should be perfectly possible, but extra work to add the reverse commands.
We can also look at adding a facility to run things periodically, automatically.
Feel free to contact me via PM.