If you use enable_read_while_writer off, any requests after the first that occur while a cache entry needs to be refreshed end up going to the origin (internally the second request treats things as a cache miss.)
If you use enable_read_while_writer on, then a lot of requests are answered from a single refresh, but occasionally some will have trouble getting some sort of write lock and will still fail, and will go to the origin when they shouldn't. (And they will trigger
TS-1702 until that is fixed.)
I would argue that for both lock failure cases, instead of just ignoring the cache entry, it should be used in a read-only mode and should still do a refresh, and just use the entry if a 304 is received or use the new contents (but don't save them, since it doesn't have a write lock) if it does not get a 304.