Avoid cache operation being sent to store being it's watched

* An operation now needs to wait for it to be watched before it can
passed it on to the store. This is in order to track ongoing
operations properly and be able to gracefully shut down.