Four raw-mode traps, checked against the libuv and kernel source Node actually runs: cfmakeraw is not Node's raw mode, a Windows console read already waiting keeps its old line buffering, an exit listener is not an exit path, and macOS writes back a termios bit you did not set.
An audit of what the flag was actually enforcing: 9 of 47 filesystem ops, and child_process not at all. What changed, and the one place oam is deliberately stricter than Node.