How do you prevent abusing that by running it in a simulation in which the difficulty crashes?
Secondly, as I understand witness encryption, if you're able to encode the hash rules as the condition, it would be easy to throw in an additional condition like 'all hash difficulties (# of leading zeros) must be >= difficulty XYZ', and simply ban large difficulty reductions. Which works as long as Bitcoin remains popular and justifying high-difficulty blocks, and if it crashes, your timelock is no longer secure so you don't want it to open and to failsafe.
Why not do everything more efficiently via the "oracle" server?
If a smart contract relies on an external data source from a normal server (oracle), then why even take the risk of deploying the smart contract?
If you're using an oracle for a data source you might as well do everything on a normal database.
You're still trusting the selected oracle to behave honestly, but they will be operating in a very competitive market which hopefully would lead to better behaviour. They might cheat once, but it would be trivial to switch to a better oracle next time.