Restrict how long a delegation can be refreshed in cache
Currently the NS record for domain delegation can be refreshed in cache with queries arriving near it's expiration time. This is good because the NS record can be prefetched ahead of time, but it also means when a domain moves to a different DNS provider, resolver will never know as long as the NS record is getting refreshed from child side of the delegation, as it will never go back to the TLD to check if the zone delegation changed.
In order to fix this, the resolver will have to track how was the NS record cached. One possible solution is to add an inception time which would only be updated when NS record first enters cache from it's parent, or restrict the amount of times a record can be updated before it's expired, or just prevent NS records from being updated until they're fully expired.
What's the best way to fix this?