title: Infinite IObservable from Task function and toggle observable
body: <p>I have two things : Function that returns <code>Task&lt;TResult&gt; query</code> and <code>IObservable&lt;bool&gt; toggle</code>. What I want to create is <code>IObservable&lt;TResult&gt;</code> that when <code>toggle</code> gets <code>true</code>, it start an infinite loop where it calls <code>query</code> every time and returns it's result. Then, when toggle gets <code>false</code>, it should stop the infinite loop.</p>
  
  <p>I did read how to make an infinite loop from task, but I cannot figure out how to <code>toggle</code> it on and off. Also, it cannot run the <code>query</code> in infinite loop and just filter it. It should not call the query at all if <code>toggle</code> is <code>false</code>. Also, it would be great if <code>toggle</code> gets false, then the resulting observable would not return if <code>query</code> was already started. It might also be good idea to cancel the <code>query</code> when <code>toggle</code> is false, but it is not necessary.</p>
  
  <p>And I would like it to be automatically testable.</p>