Beef up specs and better use eventmachine tricks

Make return value consistent btw sync/async