Publicly exchanging keys
I think the notion you're secretly after is Verifiable Delay Functions.

They don't depend on a verifiable condition, they provide a way to ensure that no-one can compute them in a short time (even by massive parallelization).
They can be used during a synchronization step controlled by a smart contract.