As my name is in the titel, I feel as if I should also answer to this thread.
The thing about the examples is, they are not production ready code, not in the slightest. They are as minimal as possible to just show the basic functionality, but for creating a real server there is much more to it.
Also, the library was made to be as simple as possible in terms of architecture and it's own code (I originally tried to keep it under 1k lines of code, now it's already twice that because I keep adding features, but still quite slim), on the other hand this means that you need to do a lot yourself.
One of those things you need to handle yourself is thread synchronization and LCL integration.
The threading implementation is extremely basic, meaning if you choose to use the threaded handler (which I originally did not even intend to include, as everyone should make their own architecture), it will be executed in it's own thread, but any synchronization, e.g. with the LCL through syncronize or TThread.Queue must be done by the programmer themselves.
I intend on building a non blocking single threaded variant one day (which could then be for example used with a TTimer in an LCL application), but it's just one thing on an ever growing lists of ideas for the future