fwiw, to get things working with pm2, I had to do:
pm2 start /root/server.py --interpreter python3
instead of the first line being just "pm2 server.py".
It would error if i just did that. and without the "--interpreter python3" I would an error (because my Pi defaults to python2). Obviously note that I have server.py in /root. YMMV there.
Hmm... now it doesn't seem to be working. Need to poke more...
okay, no, it was opening port. Had to seemingly click "initialize" in the parent device and that seemed to get it going. Watching the pm2 logs was helpful.