Synchronize has product
Observed synchronization issues inside Indexer.hasProductBeenIndexed (when internally calling productIndex.getProducts). Prevent multiple threads from entering at same time.
Add limits to archiving/removing expired notifications because those are also synchronized and can block processing...