Questions on steps/costs of container migration

Hi there. I’m trying to better understand the migration steps and related costs, in order to develop a ~prediction model for migrations (mostly live) in a given setup. From what I’ve gathered, the live migration process can be roughly translated to: synchronize container’s file system -> snapshot for container state -> resume container in dest, restoring the state from snapshot (the snapshotting process can be repeated, depending on optimization, and FS changes can be updated by the end of the process). Is this correct?
If so, is it correct to assume that the snapshotting process runs in parallel with the file system synchronization?
Lastly, but most importantly, during some early tests, I’ve noticed that migrating any container between two hosts transfer a lot more than expected. For example, an Ubuntu 17.10 image (fingerprint 86a7d869bead) generates a container with some 225~MB for its filesystem. Even having the base image copied between servers, a migration (even with the container stopped) transfers about 500 MB. What am I (obviously) missing?
Some specs, if relevant: hosts on Ubuntu 18.04; LXD using ZFS; LXD version 3.0.1; CRIU version 3.10
Thanks in advance,