alternative IteratorPublisher

This can throw an exception: `() => throw null` and should be passed as onError instead of blowing up in materialization.