having spent a couple of hours rummaging through this trace and I'm still not sure what we can do here. I see some changes in the data that might be the result of a driver swap, but it's all a bit fuzzy to be honest. I have to wonder if the game is sending usable data in these scenarios.

Did you stop and restart the session at any point? I would be helpful to have a very precise script of actions - e.g. 2 players and no AI, 1 practice session. Player 1 exits pit and does a lap while player 2 spectates. Player 1 pits at the end of this lap and player 2 takes over. He does a lap and pits and hands over to player 1 again, who then does a lap.

We don't need AI car data here - we just need player data to understand what the game is sending. There are a few variables that can be affected by driver swaps and it's hard to untangle them from the noise unless there's a very specific and well known set of events taking place