Returns 1 if read, 0 if the key was never written, -1 on invalid arguments, and -2 if
the slot stayed mid-write for over 100 ms (writer stalled or crashed).
Attaches to a ring of element_size-byte records, starting at the oldest retained
message. Returns NULL if the file is missing, not a v2 ring, or has another record size.
Returns 1 if a message was copied into out_data, 0 if the ring is caught up, -1 on
invalid arguments. Messages lost to lapping are skipped (see ringfire_consumer_lapped_count).