Fix incorrect use of async state; use the true fd-based one instead