However Thomas Frieden was on here ( or was it HJ? )
and pointed out that there is a flaw exposed ( whether it
is in Exec or in Amitcp ) when sharing a socket descriptor
I think that was Thomas. Yes, some implementation of bsdsocket cannot share a socket between tasks since they use task signals. This is a general problem, not really a flaw in the bsdsocket implementation. According to the docs, you cannot even share library bases over tasks.
OS 4 supports real threads.
The question isn't really whether you schedule threads or tasks - you need to do both. Threads are scheduled at a higher frequency, and only within the currently running task. Tasks OTOH are scheduled like before.