Would this work for you:
public static IObservable<Boo> OGetBoos(IReadOnlyCollection<Foo> foos)
{
var query =
from f in foos.ToObservable()
from b in ConvertFooToBooAsync(f).ToObservable()
select b;
return query;
}
BTW, thanks for easy to compile working code in your question!