Publicly exchanging keys my use case is the following: Sharing a secret on the blockchain from one participant over a smart-contracts with revealing the secret only after some condition is verified (another participant has paid for it).

Since every content on the blockchain is publicly available, I'm looking for a cryptographic way of exchanging keys.

This use case should be quite common for smart-contracts.
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.