Sending a webhook or writing an analytics row after the page has rendered still holds the connection open, because PHP does not close it until the script ends. Under FPM there is a function that ends the response early and keeps executing.
// send the page, then keep working
if ( function_exists( 'fastcgi_finish_request' ) ) {
fastcgi_finish_request();
}
notify_the_warehouse( $order );
The browser sees the request complete; the worker stays occupied until the remaining code finishes, so this trades latency for pool capacity rather than removing work. It only exists under PHP-FPM — the guard is not optional if the code might run under CLI or mod_php. Anything genuinely slow belongs in a queue instead; this is for the two hundred milliseconds a queue would be overkill for.