Add simple timeout and throttling support, start collecting results immediately, refactor.