Looking into what to expect from java.lang.Process.waitFor, the current implementation is quite useful compared to the semantics of the ordinary IBlockingDeref - process timeouts could often be specified in seconds or minutes rather than milliseconds, and the expected return value from .waitFor with timeout is boolean, and no timeout is specified, it is just the exitcode of the Process. Any processing of the return exit codes (or nil on timeout) could quite easily handle nil or a some timeout-val.
However - it is still confusing to embed this functionality in the IBlockingDeref.