added more multithreaded tests that are useful with tsan

Also made various small cleanups while writing and checking these tests.
diff --git a/aos/common/queue_test.cc b/aos/common/queue_test.cc
index dfafe6a..dfd18a2 100644
--- a/aos/common/queue_test.cc
+++ b/aos/common/queue_test.cc
@@ -53,7 +53,7 @@
   usleep(50000);
   my_test_queue.MakeWithBuilder().test_bool(true).test_int(0x971).Send();
   t.Join();
-  EXPECT_LE(t.threaded_test_queue.Age(), time::Time::InMS(55));
+  EXPECT_LE(t.threaded_test_queue.Age(), time::Time::InMS(57));
 }
 
 // Tests that we can send a message with the message pointer and get it back.