I would avoid using the value "cray_login" because the pbs_mom does not necessarily need to be on the Login node for it to work. I would prefer to reference the interface we are relying on for the special capability.
For instance, type = cpuset makes sense because the pbs_mom has special code to interface with cpusets.
type = cray_alps would be clear to say it has special code to interface with Cray ALPS.
Besides, looking at my crystal ball.. what would we call the type if/when we support pbs_mom natively on the Cray Compute Nodes? It would not make sense to call it cray_login anymore.. Likely the interface will still be ALPS, so referring to cray_alps may still be a good choice.