More stampede protection callback work: also trigger started callback when readCache() failed, and only trigger finished callback when something was written (otherwise the second call which initially works on stale data kills the flag right away!), refs #668