improvements from new_task branch: split ready, ready_for_io, unsafe_ready