You mention you are using a shared queue. Heed the warning in the docs of Process.terminate
(termination via segfault is a similar situation):
Warning: If this method is used when the associated process is using a pipe or queue then the pipe or queue is liable to become corrupted and may become unusable by other process. Similarly, if the process has acquired a lock or semaphore etc. then terminating it is liable to cause other processes to deadlock.