On Linux and BSD SA doesn't check what signal caused the stop. If the signal was anything but SIGSTOP, the SIGSTOP will survive the ptrace session and be delivered after SA has detached from the process. The result is that SIGSTOP will be delivered to the process when noone is ptracing it and the kernel will put the process in Stopped state.