read
Returns all entries for runId as an immutable snapshot.
Uses ConcurrentHashMap.computeIfAbsent for the lock lookup to close a TOCTOU window between checking locksrunId and entering the lock.
Returns an empty list (not an error) if runId is unknown. Wraps unexpected storage errors in JournalOutcome.Err to honour the SPI contract.