Right, sorted it...
Portainer recreate persists all EXISTING environment variables, which pihole sets.
Mine was still at "5" rather than "5.3" etc.
I removed the following variables (from within portainer) and restarted:
- PIHOLE_INSTALL=/root/ph_install.sh
- PHP_ENV_CONFIG=/etc/lighttpd/conf-enabled/15-fastcgi-php.conf
- PHP_ERROR_LOG=/var/log/lighttpd/error.log
- S6_LOGGING=0
- S6_KEEP_ENV=1
- S6_BEHAVIOUR_IF_STAGE2_FAILS=2
And it's started now. VERSION now shows as v5.8.1
PIHOLE_INSTALL now shows as /etc/.pihole/automated install/basic-install.sh
(portainer will recreate that if a recreate/pull is done, so at least worth documenting here for any other portainer users that a few variables may need clobbering before the recreate is issued)