[1] As long as they are installed & configured using different linux users. You are good. I do this all the time in my lab. Infact I have PStore / SStore / UStore / Policy Server / SPS all in one linux server.
[2] Yes right process. Infact you can source the PS ENV variable in the PS Linux User profile. Source the SPS ENV variable in the SPS Linux User Profile. That way when you login as root and su into a Linux User the ENV variable is set. But one thing I do is I do not su between profiles on the same telnet window. I use different telnet windows to login to each Linux user.
[3] Only if you are intending to use the Session Assurance feature in R12.5 - R12.52 SP1. Otherwise you can always disable the Session Assurance feature in SPS server.conf (there are blogs on how to do it). And you just need Policy Server service running in this case.