Can there _ever_ be a situation where this hangs indefinitely (raven bug)? Purge is usually called when testing (right?), so it's not a big issue production wise. Maybe throw after x loops? 10,000 or something?

Thread.Sleep always make me feel yucky, but can't think of a better way.