ENG-5869 Arbitrary precision timeouts in Java client, remove some locking, fix several bugs, increase precision of timing