- Add isSaslComplete check also to it (last retry could have succeeded and this will cause it to throw Exception)
- There can be spurious or delayed wake ups for wait - makes sense to enforce it by time elapsed, not count.