Changed timeout calculation from ms to us as usual math resulted in
loss of resolution and the possibility of a premature timeout. The
write monitoring loop now uses us rather than ms to be more compatible
with the us result returned from getMaxTimeout.