* fix(client): keep active transfers alive during foreground checks
Foreground used an independent three-second probe that closed live connections while a pong waited behind bulk data. Share the heartbeat clock and refresh its outstanding deadline on validated inbound frames, including incomplete chunk assemblies.
* test(client): deliver bulk response before the queued pong
* fix(client): preserve latency deadlines when sharing heartbeat pings
* fix(client): keep heartbeat cadence during active downloads