When I think of an OS on the Mill, I think of turfs being associated with processes, services, and libraries.
A process has at least one persistent thread (which may be suspended for multitasking).
A service has threads launched by hardware interrupts, doing a quick job, then exiting.
A library has no threads associated with itself.
Libraries will export portal calls into themselves, services and processes may export portal calls.
When a process thread makes a portal call into a library/service, the thread remains associated with the process for general accounting purposes. Separate accounting for top and profilers of processes/turfs would make sense.
I’m thinking a kill call aimed at a process should generally not immediately kill a thread currently running in another turf as that would tend to corrupt shared data structures in a library/service. The thread would continue until it returned to its home turf, but that presents another level of complexity.