I recall chatting about this idea recently and my conclusion was the same as Peter Todd's conclusion: this will just encourage miners to false signal readiness with undermines both BIP 9 and BIP 8.
I felt that rather than using script system for this construction, it would be better to use the transaction version number instead by soft-forking in a rule that says when the most significant bits of a transaction version are 001 then the transaction can only be included in blocks whose lower 29 version bits are set at the same position as the lower 29 version bits set in the transaction version.
That is to say, if we have block version blkVersion and transaction version txVersion, we soft fork in a rule that requires that
(txVersion & 0xe0000000 != 0x020000000) || ((blkVersion & 0xe0000000 = 0x020000000) && (blkVersion & txVersion = txVersion))