title: Why does this asyncio.Task never finish cancelling?
body: <p>If I run this on the <em>python3</em> interpreter:</p>
  
  <pre><code>import asyncio
  
  @asyncio.coroutine
  def wait(n):
      asyncio.sleep(n)
  
  loop = asyncio.get_event_loop()
  fut = asyncio.async(wait(10))
  fut.add_done_callback(lambda x: print('Done'))
  
  asyncio.Task.all_tasks()
  </code></pre>
  
  <p>I get the following result:</p>
  
  <pre><code>{&lt;Task pending coro=&lt;coro() running at /usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/lib/python3.4/asyncio/coroutines.py:139&gt; cb=[&lt;lambda&gt;() at &lt;ipython-input-5-c72c2da2ffa4&gt;:1]&gt;}
  </code></pre>
  
  <p>Now if I run <code>fut.cancel()</code> I get <code>True</code> returned. But typing <code>fut</code> returns a representation of the task stating it is <em>cancelling</em>:</p>
  
  <pre><code>&lt;Task cancelling coro=&lt;coro() running at /usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/lib/python3.4/asyncio/coroutines.py:139&gt; cb=[&lt;lambda&gt;() at &lt;ipython-input-5-c72c2da2ffa4&gt;:1]&gt;
  </code></pre>
  
  <p>And the task never actually cancels (<code>fut.cancelled()</code> never returns <code>True</code>)</p>
  
  <p>Why won't it cancel?</p>