I am slightly puzzled. You say that a live system can be imaged BUT there is a problem doing work on it while it's being imaged.
A human problem, not a technical problem.
A snapshot file system image is an atomic snapshot. There is no guarantee that that snapshot is of a point in time that is preferable to us humans. If there is an application saving a file at that point in time, the snapshot will contain a half-modified snapshot of the file.
This has nothing to do with any of the tools or underlying implementations of snapshotting. There is no technical problem or any kind of technical issue or slowdown or failure here; just a note that when doing filesystem-wide snapshots, the moment one takes the snapshot is significant.
One way to get around this, is monitor accesses to the filesystem both before and after the snapshot.
For the entire filesystem, there are a few different options. The kernel does have interfaces that the monitoring/backup process can use to find out which files are currently open for writing in the target filesystem. This gives an easy metric, if the snapshotter uses two temporary snapshots, and always keeps the "more useful for humans one" and discards the other, considering write accesses before and after the snapshot, and uses the best surviving one as "the" current snapshot. Or you can use some other metric.
When backing up individual files instead of an entire filesystem, the same problem exists for individual files. In Linux, if the user running the monitoring/backup process is either superuser or the same as the owner of the files, the monitoring/backup process can use a feature called
file leases to check if that particular file is being accessed right now, or in the near future. A write lease only succeeds if no other process has the file open or memory-mapped. Also, when the process has a write lease, then any attempt to open the file will be delayed (not blocked, only delayed) for up to a time limit, or when the lease owner releases the lease. The open attempt will be notified using a POSIX signal.
In no case is the snapshot "denied" because of filesystem accesses. The entire thing here is about how to ensure the snapshot is maximally useful to us humans, and not some technical corner case when snapshotting fails –– be that for entire filesystem or specific files.
One reason cross-OS backup utilities don't get this right, is because different operating systems tend to have different approaches to this. So, a single approach or algorithm won't work equally well on all systems, and instead you need to understand each OS and its quirks separately. I'm convinced that trying to port any of my own backup stuff –– except the plain "tar this subtree every day at this time, and copy to this directory; keeping only the last N tarballs" –– to a non-Linux OS would lead me to desperation.
I think I shall modify my problem to be: "I can't do it on Linux".
Right; I definitely have no issue with that. I can even add to that that "Doing it in Linux requires quite in-depth knowledge and initial investment of time and effort".
I do admit that one facet of this is very frustrating to me: because I've used Linux every single day in all kinds of environments from embedded to desktops to servers to HPC clusters, and I find all this as natural and comfy as well-fitting old slippers, it is difficult for me to try and find solutions from the perspective of an user who does not have that kind of experience. That is, I myself am too removed from their context to give advice I'd really be happy with.
Moreover, whenever I've optimized others' workflows, I always start by observing their current workflow, tasks, and approaches. I need to
understand the problem or task or workflow first, before I start making any kind of changes willy-nilly.
Online, such observation is impossible. Even when sharing the desktop, all the important cues like exactly what the user likes or dislikes (as opposed to what they
think they like and dislike, the former telegraphed by their facial expressions and body language) are lost. Only a tiny fraction of the necessary information gets conveyed.