Well, I've already learned something. Your Gnotero-based script can cache even with Zotero running because the libzotero script creates a clone .sqlite database first, and then reads from that. You can clone a .sqlite database, even if it is locked, while you cannot read/write a locked database. I'm about to update my code accordingly.
Would you be interested in collaborating to create a single workflow? I tried hard to comment out much of my code, to make it fairly explanatory, so that should help somewhat in reaching a modicum of equal knowledge. It will take me a while to digest all of your code (I'm still fairly new to Python, plus, like most decent workflows, there are alot of moving parts and scripts). But I think having one kick-ass workflow for Zotero would be awesome. And I know splitting the coding would save some time (after the initial catch up on each ind. project). It will undoubtedly take time to figure out which parts to merge and how best to merge them, so if that sounds to time-consuming, we can go our separate ways. Tho I would still like to chat.
Let me know what you think,
stephen