The image itself is consistency through ZFS.
But the data in the page cache of the VM are not written.
So if you want to ensure all data are written in a snapshot you have to flush your caches.
This is done by qemu-guest-agent
And in addition you should use software that has integrated support for this, e.g. on Windows with every software that hooks into VSS. For others, you can use qemu-agent hooks to get e.g. a database log switch and flush to disk. But in the end, you will have only crash consistency for almost all software packages that do not have such a feature.