pub(super) async fn peek_action_async(
        &mut self,
        max_wait: tokio::time::Duration,
    ) -> Option<SyncAction> {
        if let Some(action) = &self.peeked {
            return Some(action.clone());
        }
        self.peeked = tokio::time::timeout(max_wait, self.receiver.recv())
            .await
            .ok()?;
        self.peeked.clone()
    }
Returns the first action from the queue without removing it.
core/node/node_sync/src/sync_action.rs