I've found the sequential syncing with mbsync to be a major bottleneck. These days instead of "mbsync -a" I have a script like this, using GNU Parallel:
parallel --bar -j0 mbsync "$@" <<EOF
mail1
mail2
mail3
EOF