Ensure deplyoment await logic uses the latest deployment object (#2943)
### Proposed changes
This PR ensures that we compare deployment revisions based on the old
live object, and the most current deployment object.
This PR does the following:
- Add a repro test that fails before the change is applied
- Only watch for deployment events until the deployment object has been
reconciled by the deployment controller
- Update existing unit tests to account for blocking unbuffered
channels, and faked objects that did not have
`.status.observedGeneration`
### Related issues (optional)
Fixes: #2941