diff --git a/test/pc/e2e/echo/echo_emulation.cc b/test/pc/e2e/echo/echo_emulation.cc
index 2beaa34..230e8e3 100644
--- a/test/pc/e2e/echo/echo_emulation.cc
+++ b/test/pc/e2e/echo/echo_emulation.cc
@@ -57,17 +57,7 @@
   }
   queue_input_.assign(data.begin(), data.end());
   if (!renderer_queue_.Insert(&queue_input_)) {
-    // Test audio device works too slow with sanitizers and on some platforms
-    // and can't properly process audio, so when capturer will be stopped
-    // renderer will quickly overfill the queue.
-    // TODO(crbug.com/webrtc/10850) remove it when test ADM will be fast enough.
-#if defined(THREAD_SANITIZER) || defined(MEMORY_SANITIZER) || \
-    defined(ADDRESS_SANITIZER) || defined(WEBRTC_ANDROID) ||  \
-    (defined(_MSC_VER) && !defined(__clang__) && !defined(NDEBUG))
     RTC_LOG(WARNING) << "Echo queue is full";
-#else
-    RTC_CHECK(false) << "Echo queue is full";
-#endif
   }
 }
 
diff --git a/test/pc/e2e/peer_connection_e2e_smoke_test.cc b/test/pc/e2e/peer_connection_e2e_smoke_test.cc
index 8080d4b..d3894eb 100644
--- a/test/pc/e2e/peer_connection_e2e_smoke_test.cc
+++ b/test/pc/e2e/peer_connection_e2e_smoke_test.cc
@@ -83,7 +83,7 @@
     auto fixture = CreatePeerConnectionE2EQualityTestFixture(
         test_case_name, /*audio_quality_analyzer=*/nullptr,
         std::move(video_quality_analyzer));
-    fixture->ExecuteAt(TimeDelta::Seconds(2),
+    fixture->ExecuteAt(TimeDelta::Seconds(3),
                        [alice_network_behavior_ptr](TimeDelta) {
                          BuiltInNetworkBehaviorConfig config;
                          config.loss_percent = 5;
@@ -136,7 +136,7 @@
 #define MAYBE_Smoke Smoke
 #endif
 TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Smoke) {
-  RunParams run_params(TimeDelta::Seconds(2));
+  RunParams run_params(TimeDelta::Seconds(3));
   run_params.video_codecs = {
       VideoCodecConfig(cricket::kVp9CodecName, {{"profile-id", "0"}})};
   run_params.use_flex_fec = true;
@@ -173,7 +173,7 @@
         screenshare.stream_label = "charlie-screenshare";
         screenshare.content_hint = VideoTrackInterface::ContentHint::kText;
         ScreenShareConfig screen_share_config =
-            ScreenShareConfig(TimeDelta::Seconds(2));
+            ScreenShareConfig(TimeDelta::Seconds(3));
         screen_share_config.scrolling_params = ScrollingParams(
             TimeDelta::Millis(1800), kDefaultSlidesWidth, kDefaultSlidesHeight);
         auto screen_share_frame_generator =
@@ -197,7 +197,7 @@
 #define MAYBE_Echo Echo
 #endif
 TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Echo) {
-  RunParams run_params(TimeDelta::Seconds(2));
+  RunParams run_params(TimeDelta::Seconds(3));
   run_params.echo_emulation_config = EchoEmulationConfig();
   RunTest(
       "smoke", run_params,
@@ -227,7 +227,7 @@
 #define MAYBE_Simulcast Simulcast
 #endif
 TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Simulcast) {
-  RunParams run_params(TimeDelta::Seconds(2));
+  RunParams run_params(TimeDelta::Seconds(3));
   run_params.video_codecs = {VideoCodecConfig(cricket::kVp8CodecName)};
   RunTest(
       "simulcast", run_params,
@@ -265,7 +265,7 @@
 #define MAYBE_Svc Svc
 #endif
 TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Svc) {
-  RunParams run_params(TimeDelta::Seconds(2));
+  RunParams run_params(TimeDelta::Seconds(3));
   run_params.video_codecs = {VideoCodecConfig(cricket::kVp9CodecName)};
   RunTest(
       "simulcast", run_params,
@@ -305,7 +305,7 @@
 #define MAYBE_HighBitrate HighBitrate
 #endif
 TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_HighBitrate) {
-  RunParams run_params(TimeDelta::Seconds(2));
+  RunParams run_params(TimeDelta::Seconds(3));
   run_params.video_codecs = {
       VideoCodecConfig(cricket::kVp9CodecName, {{"profile-id", "0"}})};
 
