I'm building something like this for a few personal projects. I am in the process of improving the docs and adding docs around setting up outbound email for forgot password flows, etc... but it works for all the things you mentioned above. Note that the password hashing is using salted SHA-256 instead of something like bcrypt as you don't really want long CPU burns on Workers. If this is a concern you can use bcrypt or an external hashing service or whatever. - https://github.com/devondragon/workers-users
Yes the user management is a Worker + D1. The repo has a Pages example front end, and the session-state Worker. but you don't need to use either of those to leverage the main functionality really...
Currently having problems with getting the email content using an email worker. My question is now: Is this even possible with the EmailMessage object provided from the worker?
No. A WebSocket actually starts with a GET request so if you blocked GET requests you'd be blocking the initial WebSocket handshake and nothing could connect.
They have it broken into 2 lists. There is a set of lists that is just datacenters. (I do have the usecase of wanting to block vpns) but its just an idea of. If you want a central list blacklisting all big datacenters this is a good source of truth
Yes, it will block bots - but if you're not having a huge problem with bots you should probably try other methods first, blocking an IP list like that is sort of a blanket measure