issue 904 Race Condition and _async Perf fixes

Chrome Profiling has helped  a ton
@gitnik
@aesnyder
@cthrax 
@kandizzy 
having `.catch` allows the functions to be called again and again even if an error happens. Otherwise `waitOrGo` will always wait.