Use timeout.HasValue to determine if a timeout was given
Use timeout.HasValue to determine if a timeout was given

Also remove negative boolean value, and flip boolean assertions
to keep the semantics intact

rapidcore/rapidcore,rapidcore/rapidcore