add test for detecting backwards time, fix bug where a RuntimeException was being thrown instead of an InterruptedException