Is there anything like that available? I don't think I can build it inside of OpenTTD so I'm looking for a way to get the data outside of it.
I would expect that doing it from within OpenTTD would be by far the easiest way to do it.
Events like trains stopping at stations, cargo unloading, etc. are not directly recorded in savegames after the fact, and are not transmitted as part of the multiplayer protocol.
Each multiplayer client runs a full game simulation separately.
Adding some printf lines to key functions in the source, recompiling, running it, and then analysing the output is probably your best bet.