Swoole's PDO-pgsql coroutine hook reimplements pgsqlCopyFromArray() — the
COPY the drain worker uses for 10 tables — and busy-loops instead of
completing the write (100% CPU, zero rows drained, spin is in swoole.so so
the SIGALRM backstop can't catch it). setHookFlags(0) reverts the connect
hook but NOT the COPY override, so RecordWriter falls back to multi-row
INSERT (insertBatch) whenever Swoole/OpenSwoole is loaded; plain installs
keep fast COPY. Adds a regression test for the fallback.
Also re-documents the fork->exec drain worker as clean-state hardening,
removing the now-disproven "TLS handshake deadlock" rationale.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>