One returns ETIMEDOUT, and the other returns EIO. Even without further understanding the code at this point, we can add two printf calls to identify which path is being followed
Printf debugging feels like stepping back in time. I guess OpenBSD does not have dtrace?