In general I discourage the use of the session ID since NADs, particularly wireless, often change the session ID or new sessions get triggered from roaming. This will cause a thrash on the backend as PSNs must address the potential replication requirements and change of ownerships. In other words, a given client can trigger many different session IDs over time and will consequently be load balanced across many different PSNs. For this reason I typically advocate Calling Station ID for persistence since same client will hit same PSN regardless of the session ID triggered (or not) by the Cisco or 3rd-party NAD.
One option that would work across different NADs is to persist RADIUS on Calling Station ID and to add the Framed-IP to the persistence/sticky table, then load balance HTTP based on source IP. Example config provided here: F5 LTM loadbalancing Radius and HTTP traffic for ISE - Cisco
This will allow HTTP traffic to be sent to same PSN as used for RADIUS.