Should we have some sort of timeout? Un-broken while loops scare me. Even if it defaults to `np.inf`, it would be nice to have some `timeout` argument. WDYT?