Thank you. In fact, I had already tried the kill 0 technique, and it didn't work, just as you described.
I'm going to try the /proc/$pid method. But I'm afraid that that might also yield a false negative if I haven't reaped the child yet. (ps shows "defunct".) (I suspect that that would also explain why kill 0 doesn't do what we expect either.)