f41b1e35f3
Some Kata/microVM guest kernels (e.g. the CI runner's 6.18.x) are built without CONFIG_PROC_CHILDREN, so /proc/<pid>/task/<tid>/children does not exist. The Linux children() relied on it with no fallback, making children()/live_descendants() return empty and silently turning shell cancellation cleanup into a no-op inside such containers. Fall back to scanning /proc and grouping by parent pid (the same primitive the macOS path already uses) when no children file is readable; kernels with the file keep the cheap per-task fast path. Also fixes process::tests::descendants_includes_freshly_spawned_child under Kata CI.