Use grpc time outs and ability to wait on jobs to have the server hang pending on a job coming through. This reduces the need for constant update requests while still responding to new jobs quickly. This is part of #118 and #126