"fileno()" for Motor's socket wrapper is not implemented for asyncio:
I believe this means a socket is always replaced when it's used after more than a second of idleness, since _closed() tries to call "select" on the Motor socket wrapper and closes it if "select" throws any exception, in this case an AssertionError.