More unit tests, and changed ListenableFutureVirtualTask to more closely match ListenableFutureTask when an exception is thrown