Use real rather than simulated task queues in rtp replayer fuzzers

Simulated task queues do not cooperate with Event class implemented by
chromium and thus lead to deadlock when Event is used for a blocking
call on the simulated task queue.

This is partial revert of
https://webrtc-review.googlesource.com/c/src/+/470500

Bug: chromium:510952673
Change-Id: Id636531090850442cbc13410b969b6960fce8e9b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/471000
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#47701}
diff --git a/test/fuzzers/utils/rtp_replayer.cc b/test/fuzzers/utils/rtp_replayer.cc
index 9509c7f..523ad29 100644
--- a/test/fuzzers/utils/rtp_replayer.cc
+++ b/test/fuzzers/utils/rtp_replayer.cc
@@ -84,7 +84,12 @@
   }
 
   // Setup the video streams based on the configuration.
-  Environment env = CreateTestEnvironment({.time = &time_controller});
+  // Destroying video receive streams does a blocking call using Event class.
+  // TaskQueue implementations that `time_controller` creates can cooperate
+  // with Event class implemented in WebRTC, but not with Event class overridden
+  // by chromium. To avoid blocking when running in chromium, real (default)
+  // task queues are used, while `time_controller` is used only for the Clock.
+  Environment env = CreateTestEnvironment({.time = time_controller.GetClock()});
   CallConfig call_config(env);
   std::unique_ptr<Call> call = Call::Create(std::move(call_config));
   SetupVideoStreams(&receive_stream_configs, stream_state.get(), call.get());