Also, another thing I thought of in the meantime.  Returning something like `{fail, race_condition}` would be less useful than what we do today with eunit macros and explicit pattern matching because 1) you would have to thread that value all the way up the test stack and b) you lose valuable information like line numbers and such where the failure condition occurred.  Basically throw, ?assert and explicit pattern matching allow you to easily stop a test dead in its tracks and have a useful message reported by RT.  I would even say people should not use the `pass | fail` idiom because it just causes more boilerplate code and requires the user to explicitly log why it failed rather than letting RT handle it for you.

My 2 bits anyways.