Do not dispose while the worker or queued callbacks can still access
this object/requester. Active is based on a stored process pointer, not
a process-liveness query or join. That pointer is cleared only in the
deferred close hook. Queue failures are not checked and can leave state
stuck. The initial filename can point into the String's current buffer,
so keep it stable while the worker may read startup tags.
The open path leaks its temporary name/drawer buffer if message-port
allocation, startup allocation or process creation fails after buffer
creation. Startup reply handling frees the startup message without
explicitly dequeuing the reply. These limitations are documented, not
corrected here. Hook tags are borrowed, and asynchronous execution
provides no automatic ownership protection.