So qcow2_cluster_zeroize() seems to accept the unaligned tail. It would
still set the zero flag for the partial last cluster and for the
external data file, bdrv_co_pwrite_zeroes() would have the correct size.
Then I'm in favor of NOT rounding the tail. That's an easy enough change
and we've now justified that it does what we want, so R-b stands with that
one-line tweak.
Would have been too easy... bs->total_sectors isn't updated yet, so the
assertion does fail.
I can make the assertion check end_offset >= ... instead. That should
still check what we wanted to check here and allow the unaligned
extension.