There seems to be quite some time between when a process is defunct and when it gets cleaned up. In the meantime, the user could ask to do something with this process and causes Frysk to crash, or relay bad or old info. The refresh cycle that Frysk uses can also be long, so it has to be an on-demand read much like getGID and getUID. Does the state in /proc/$$/status get updated in a fairly fast manner? I notice it has Z for zombie as a state in there.
Unfortunatly, no matter what we do the race will always be there; when unattached we need to be ready for defunct and/or disappeared errors as responses to an error. A kernel mechanism for informing us when an attached process has gone from defunct to disappeared would be useful.