This issue was observed in Esgyn internal testing. When the system is heavily loaded, the scratch IOs can return EAGAIN that translates to OPERATION_NOT_COMPLETE in Sort scratch IO handling. This condition is not being handled correctly.
Scratch IO doesn't use asynchronous IOs though the scratch file is opened in non-blocking mode. EAGAIN is returned from these IO operations very rarely. It should be fine to open the scratch file in blocking mode to avoid this problem