tryReadPty: use actual read() bypassing GHC.IO buffering