It hangs. It seems that when using CreateExtIO, CheckIO won't be able to check correctly if anunsent request has returned or not.
CreateExtIO likely (AROS version does) sets ln_Type to NT_MESSAGE. CreateIORequest does not.
If ln_Type is NT_MESSAGE CheckIO thinks request is in use/not finished and the abortio + waitio thing is done although request was never sent.
It's better to use some bool variable to remember whether a request was ever sent.