Correctly responds to inactive update puller

There are different use cases for the update puller. Some cases are OK
with observing the puller becoming inactive while awaiting the condition,
others aren't. This different existed already, but only as a check before
the call and inside await an exception was thrown when this happened. This
commit moves the difference in handling an inactive puller into await
where the caller can decide how to handle it.