FutureUtil should wait until timeout ends instead of throwing first time...

...out exception. ExceptionHandler should decide to throw exception or not. Caller should decide to cancel other futures or not.