Can presence messages (join, leave, timeout & state-change) be stored for later retrieval?

Yes, enabling Storage & Playback add-on archives messages for all channels, including presence channels, hence allowing retrieval of presence events that occurred in the past.