The overlay mount was failing because it tried to mount overlay onto /root while also using /root as the lowerdir source. This is invalid - you cannot overlay-mount a directory onto itself. Fix: Mount squashfs to /mnt/squashfs, tmpfs to /mnt/overlay, then mount overlay onto /root using the squashfs mount as lowerdir.