background (round 3, snapshot10d): 7/7 pass.
d1 two servers, TaskStop 143 on one, the other stopped at exit; d2 127 and exit 3 reported fast (cosmetic: exit code said twice); d3 CJK/emoji/ZWJ byte-exact, 0 U+FFFD; d4 node --watch parent+child cleaned up at exit (runner ps check misses commands without the run folder; reviewer checked with pgrep/lsof); d5 8 shells, #9 refused, #10 refused as repeat, all stopped; d6 SIGINT during TaskStop -> accurate message, resume clean, no repeats; d7 kill -9 -> port freed 364 ms later, checkpoint has synthetic result.
Note acted on: TaskList returned [] with 8 shells running (it listed task records only) -> TaskList now also lists background shells (id, command, description, state).
