Improve async pipeline processing

Open Kamil Trzcińśki requested to merge improve-async-pipeline-processing into master

What does this MR do?

Make to queue much less PipelineUpdateWorker's and improves efficiency of PipelineProcessWorker's, but also reduces a number of queued.

For PipelineProcessWorker it moves locking into for a build to make it no-locking if no-op happens.

Are there points in the code the reviewer needs to double check?

Why was this MR needed?

Screenshots (if relevant)

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?