I'll answer my own question:
The only necessary fix was to append log volume mount point to RequiresMountsFor
in systemd-journal-flush
service's unit file:
RequiresMountsFor=/var/log/journal /log
In yocto, that required patching systemd
recipe to make a change in units/systemd-journal-flush.service
.
After this change, new boot is correctly recognized every time, and no more unmount failures during poweroff.