This is, again, something that should be sorted out in a standardised fashion, not implemented as a one-off in a single component.

The current thread termination model is deliberately based on the Posix thread cancellation model; by nominating specific points in the thread's workflow where cancellation is possible, you avoid having to deal with asynchronous termination at arbitrary points (as well as having to pay the stack allocation penalty required to handle a signal AST).

It's also a bad idea to try to map Posix signal semantics onto NuttX signals. There are subtle but significant differences; just to start with, no SIG_DFL handling.