pub(crate) fn wake_pipe() -> Result<(OwnedFd, OwnedFd), String>
Non-blocking CLOEXEC pipe for wake signaling (read end, write end).