memory queue: fixed thread leakage (threads would always hang even after engine is shut down)
memory cache: optimized to ignore audit messages and use list with locking enumerator (which relies on the fact that list is used as append only) instead of arrays (and constant atomic copy operators)