The tag system is fully multithreaded and only locks what it needs, not what some queuing algorithm needs. You will suffer trying to do this with a memory dataset tag.
Use a proper java concurrent queue. Set it up so that only a single copy is ever constructed (using system.util.getGlobals() and .setdefault()
). Run a timer script that polls this queue, with a timeout the same as the fastest pace you want to run.
Only place python or java native data types in such a queue. (I usually use python tuples.)