debug more, filter less, simpler exceptions

trying to figure out #2 

- can do just as effective `filter` check in `forEach` so should be "more performant"
- added debug logging statements to verify `jobs` is correct
- while `throws` should go up the call stack to the try/catch, simplified to just calling a function that ends it