[test_runner] Better calibrate the sanitizer timeout multipliers.

Bug: https://github.com/dart-lang/sdk/issues/61593
Change-Id: I65d0141413d537862ba79248105db1b90ee8a478
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/452887
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
diff --git a/pkg/test_runner/lib/src/runtime_configuration.dart b/pkg/test_runner/lib/src/runtime_configuration.dart
index b2050ad..f910ce7 100644
--- a/pkg/test_runner/lib/src/runtime_configuration.dart
+++ b/pkg/test_runner/lib/src/runtime_configuration.dart
@@ -369,8 +369,19 @@
     if (isReload) {
       multiplier *= 2;
     }
-    if (_configuration.sanitizer != Sanitizer.none) {
-      multiplier *= 4;
+    switch (_configuration.sanitizer) {
+      case Sanitizer.none:
+      case Sanitizer.lsan:
+      case Sanitizer.ubsan:
+        multiplier *= 1;
+        break;
+      case Sanitizer.asan:
+      case Sanitizer.msan:
+        multiplier *= 2;
+        break;
+      case Sanitizer.tsan:
+        multiplier *= 6;
+        break;
     }
     if (_configuration.rr) {
       multiplier *= 2;