title: Asyncio RuntimeError: readuntil() called while another coroutine is already waiting for incoming data
body: <p>Using python3.6.8:</p>
  
  <p>I'm attempting to script the initial configuration of network devices on boot. My script opens telnet connection on "ip_addr:port". Once connected, script stimulates the network device it's connecting to with "\n\n" (simulating two 'Enter' input from an admin).</p>
  
  <pre class="lang-py prettyprint-override"><code>connection = asyncio.open_connection(
                   ip_addr,
                   port,
               )
  try:
      reader, writer = await asyncio.wait_for(connection, 5)
      print(f"successfully connected to {ip_addr}:{port}")
      writer.write(b'\n\n\n')
  </code></pre>
  
  <p>Some devices are already configured and I except " login: " to show up in the read buffer upon entering '\n'. However if the device is not configured yet, " login: " will not show up in the buffer. Therefore I thought I could use wait_for and timeout option to have this cancelled and move on with another <em>reader.readuntil(...)</em> expecting another output.</p>
  
  <pre class="lang-py prettyprint-override"><code>try:
      await asyncio.wait_for(reader.readuntil(b' login: '), 3)
      print(f"{ip_addr}:{port} alredy booted")
      break
  except (asyncio.TimeoutError, OSError):
      print('Nope, moving forward')
      await reader.readuntil(b'normal setup ?(yes/no)[n]: ')
  </code></pre>
  
  <p>However this raises a RuntimeError. Reading the documentation I excepted the task to be cancelled if the timeout is reached, so why can't it have another coroutine <em>readuntil()</em> ?</p>