io: Always complete transfers regardless of timerfd errors
This commit addresses two issues.
First, commit
a886bb02 introduced an issue where transfer callbacks
would not be called if the transfer that completed was the first
in line and the timerfd needed to be armed for another transfer.
Second, failure to set the timerfd should not prevent the transfer
from completing. The behavior has always been such, but it will
leave clients waiting for their transfer callbacks to be called.
This change will let the transfer callback complete and will return
the error through the event handling path.
Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>