I think I would consider implementing it as 1:1 threading where every thread=guild runs its own set of green threads.
That likely would be faster than having OS threads in each guild that use PS locks to prevent running >1 of them concurrently.
That likely would be faster than having OS threads in each guild that use PS locks to prevent running >1 of them concurrently.