@jshaffstall was kind enough to update my backup routine and post it here:
Edit:
Nowhere near as nice as what you are suggesting!
SQLite has some advantages over zipfiles, i.e., the ability to embed the schema (included above), and to query the data directly.
A decent, hierarchical table-naming convention would embed the scope (appname__dbname__tablename) into the table name, to disambiguate.
Alternatively, a separate table could be used to map the hierarchy into some lower-level table name. This would be handy if, for example, you have a huge table shared by multiple databases and/or apps, and want it to be represented, accurately, as a single table in the backup as well, avoiding needless duplication.
There could conceivably be the best of both worlds, i.e., by zipping the .sqlite file.
Currently, bits and pieces of this could be programmed per App as a background task. However, they would not be deduplicated.