Make JobStatus treat Progress as something it always has

Instead of thinking of Progress as something that is only around when we are IN_PROGRESS, now tread Progress as something that always exists. This allows people to transmit FAILED messages back to the client.