* core: fix bug on ondemand dispatch
after a request was dispatched to the last peer the dispatch would loop
forever on subsequent requests that aren't able to be fulfilled by any
of the peers, since the last peer wasn't updated.
* core: try to dispatch all pending ondemand requests