dispose method
SIGTERM, 2s grace, SIGKILL, then deletes the temp script directory. Idempotent.
Implementation
@override
Future<void> dispose() async {
final process = _process;
_process = null;
_bridges = null;
_disposed = true;
await _stop(process);
final dir = _tempDir;
_tempDir = null;
await _deleteTempDir(dir);
}