Remove ThrowableRecordingRunnableWrapper from production use: our default uncaught exception handler is preferred.

Also clean up KeyedLockerTest: remove unnecessary "final", use lambdas where possible, and make assertions instead of throwing exceptions.

Demo showing we still crash:

$ devb build <target>
<snip>
FATAL: blaze crashed due to an internal error. Printing stack trace:
java.lang.IllegalStateException: bork
	at com.google.devtools.build.lib.skyframe.FilesystemValueChecker.lambda$getDirtyValues$6(FilesystemValueChecker.java:608)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:830)
INFO: Elapsed time: 1.945s
<snip>
FAILED: Build did NOT complete successfully (0 packages loaded)
$ echo $?
37
$ devb info server_pid
Starting local Blaze server and connecting to it...
2684300
PiperOrigin-RevId: 382526316
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
index 4e07552..e04b21f 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
@@ -15,7 +15,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
-import static org.junit.Assert.assertThrows;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -991,16 +990,20 @@
             FileValue.key(
                 RootedPath.toRootedPath(Root.fromPath(pkgRoot), PathFragment.create("foo"))));
     driver.evaluate(values, EVALUATION_OPTIONS);
+    AtomicReference<Throwable> uncaughtRef = new AtomicReference<>();
+    Thread.UncaughtExceptionHandler uncaughtExceptionHandler =
+        (t, e) -> uncaughtRef.compareAndSet(null, e);
+    Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler);
     FilesystemValueChecker checker =
         new FilesystemValueChecker(
-            /* tsgm= */ null, /* lastExecutionTimeRange= */ null, FSVC_THREADS_FOR_TEST);
+            /*tsgm=*/ null, /*lastExecutionTimeRange=*/ null, FSVC_THREADS_FOR_TEST);
 
     assertEmptyDiff(getDirtyFilesystemKeys(evaluator, checker));
 
     fs.statThrowsRuntimeException = true;
-    RuntimeException e =
-        assertThrows(RuntimeException.class, () -> getDirtyFilesystemKeys(evaluator, checker));
-    assertThat(e).hasMessageThat().isEqualTo("bork");
+    getDirtyFilesystemKeys(evaluator, checker);
+    assertThat(uncaughtRef.get()).hasMessageThat().isEqualTo("bork");
+    assertThat(uncaughtRef.get()).isInstanceOf(RuntimeException.class);
   }
 
   private static void assertEmptyDiff(Diff diff) {