Start a background task that polls for captured events and streams them over a mpsc channel.
Returns the receiver; the task ends when the Page errors or the sender is dropped.
Wait for the next event from the receiver with a timeout.
Returns Ok(Some(event)) if an event is received, Ok(None) if the stream is closed,
or Err(()) if the timeout expires before an event is received.