chroot-setup.sh does indeed move aside /sbin/initctl. However, it doesn't divert it! Therefore, if upstart is upgraded, it will put a real initctl back. In this case, upstart is upgraded before procps, hence the bug.
Alarmingly, this means that in such cases the resulting system will end up with an upgraded version of upstart according to dpkg but will in fact have an old initctl binary, because d-i will have saved initctl from the start of its internal upgrade process and then put it back at the end. Therefore, we need to fix this bug rather urgently for all supported releases.