Alright this one has a pretty simple solution.
So the issue you were running into was essentially that flox activate sets PROMPT at the end of its run, after shell.hook is executed, so this was wiping out your settings.
The good news is there’s an environment variable FLOX_PROMPT_DISABLE=1; that will suppress setting PROMPT/PS1, which would allow your settings to survive.
Note that setting FLOX_PROMPT_DISABLE in shell.hook or environmentVariables.FLOX_PROMPT_DISABLE will have no effect. It should be set before running flox.