Why not track it by GET data from where he is in the application? It might be simpler to pass along that information in the link.
in reply to New Session for new Window...
in thread New Session for new Window (or: Session ID vs. Process ID...)
If they jump out of that loop by opening a new window (or head to a spot where they couldn't possibly have gone to from the current report, create another session from there and change around all of the links (session=206, etc).