Current timeout behavior is to progress in timeout values from MINTMO to MAXTMO exponentially before finally timing out. This results in a fairly long time before operations finally timeout, which may not be ideal for some use-cases.
Add MAXWAIT that may be configured along with MINTMO/MAXTMO. If we attempt to start our send/recv cycle over again but MAXWAIT > 0 and MAXWAIT seconds have already passed, then go ahead and timeout.
This is intended for those that just want to say "timeout after 180 seconds" rather than calculate and tweak MINTMO/MAXTMO to get their desired timeout. The default is 0, or "progress from MINTMO to MAXTMO with no exception."