Refactor code to resolve jobs in WAIT_ASYNC into JQManagedJob. Add tests...

....
Can we actually put the state into this exception so I can retrieve it when I catch? I only have the mJobId, not the mJob itself to ask, but this exception is totally in context I would think.

I need to be able to do different things based on *which* invalid state it was in.

I can make this trivial code change just wanted to run it by you first, designwise.