Sometimes ChangeProp lags and it's fine - huge template updates could create significant load and concurrency limiting doesn't allow us going full speed, and it's correct, we don't want to DDOS our own services.
Although, sometimes lagging could be so long that it becomes user-visible, here's an example: T137669
To avoid this, we might wanna introduce the 'dirty' flag in RESTBase. The idea is to have a rule that performs a special request to RB marking a page dirty, but not rerendering it. This job can go crazy fast, so it will never lag. If a user request for a dirty page comes, it's treated as a no-cache request - the page is rerendered. If a no-cache request comes to a dirty page - it's rerendered and dirty flag is cleared. With this user will never see a stale page.
This job could potentially be switched on/off dynamically when lagging for certain rules reach some limit, but that's kinda a fancy feature, not a core one.