in reply to Exit codes and signals

One possibility, although I am unsure how unconventional, is to return ($returnvalue | $signalled).
bash, for instance, returns 128+n if the command is terminated by signal n. It works well enough in practice... otoh, $returnvalue | $signalled is probably less useful:
$ perl -mPOSIX -E 'say for POSIX::SIGHUP, POSIX::EXIT_FAILURE' 1 1

Another possiblity is to use a more sophisticated form of IPC, some kind of message queue, perhaps (but that's maybe overkill in this case).