I have not figured out why it was hanging, but I have discovered that wrapping the call in debconf-apt-progress not only presents a proper progress bar, but also somehow avoids the hang.
So, my full late_command is:
d-i preseed/late_command string in-target sh -c "debconf-apt-progress --logstderr -- aptitude -q --without-recommends -y -o DPkg::options=--force-confnew full-upgrade"
(The options that I'm using are there because I copied them from the pkgsel code handling the pkgsel/upgrade step.)
I have not figured out why it was hanging, but I have discovered that wrapping the call in debconf- apt-progress not only presents a proper progress bar, but also somehow avoids the hang.
So, my full late_command is:
d-i preseed/ late_command string in-target sh -c "debconf- apt-progress --logstderr -- aptitude -q --without- recommends -y -o DPkg::options= --force- confnew full-upgrade"
(The options that I'm using are there because I copied them from the pkgsel code handling the pkgsel/upgrade step.)