So I ended up having a command.ps1 just pipe directly into our bash command hook. This achieves what I wanted, but I would have expected a shell=bash would use the bash hooks in the first place.
The problem was if there’s any spaces in the command, like echo "wow look a space", it would completely stop the entire job at the space. It would end with wow. Not great!
Regardless, I think the docs should call this oddity out at least.
Unfortunately, Windows has some caveats and the agent use batch as default for the hooks. The workaround you proposed is the best alternative at the moment.