Squashfs needs a block device to run, thus you need the block emulation over UBI. First make sure it is enabled in your kernel.
You can test this by using the ubiblock command on a running system. For example, running ubiblock -c /dev/ubi0_0 will create the devnode /dev/ubiblock0_0.
Once you have the dependency, you can enable the UBI block on the cmdline ...
No, according to the UBIFS documentation, ACL support is not implemented in UBIFS:
UBIFS supports extended attributes if the corresponding configuration
option is enabled (no additional mount options are required). It
supports the user, trusted, and security name-spaces. However, access
control lists (ACL) support is not ...
Your easiest and best option is probably to pass it as the kernel command line variable systemd.machine_id as per the official documentation. If you want to get really fancy you could have your bootloader generate it based on something truly unique about the SoC that you are running on (like serial number, MAC address, etc).