The central smart contract is on the blockchain and can only be used if the internet is up. That's why you haven't solved anything here.
Your proposal is that since Alice and Bob can't communicate in real-time, either directly or indirectly, Alice does an interaction with a smart contract to lock some value and then Bob does an interaction with the same smart contract to unlock some value.
We can view the smart contract as some shared algorithm between Alice and Bob (if they are running their own nodes) or we can view it as something outside of them both (perhaps they are RPC customers of Infura). If Alice and Bob are running their own nodes, however those nodes manage to communicate with each other is a way they could just send the message to each other and not need a blockchain. And if they're both able to communicate with Infura, they could also swap Infura for Gmail and send each other a message the normal way (or if they can really only reach Infura for some reason, they can put their messages on the blockchain). But we are talking about designing systems that can work in scenarios where direct communication like this is impossible, and messages have to be forwarded hop-by-hop over a span of hours. You can't design a system for slow networking, that assumes the existence of a separate fast network just to run the payment system.
All nodes running a blockchain have to be in low-latency contact with each other. If you try to run Bitcoin in a network with multi-hour latency, you'll never reach consensus on which blocks are in the chain. You'll be hard-forking all over the place. You'd have to slow it down to, like, one block per week, but then it's far too slow to be useful for payments.
If a blockchain exists in such an environment, it exists on a tightly-coupled cluster of nearby nodes. And that cluster is pretty much the same as a single central node, from the perspective of the network. You don't gain anything by making it a cluster (except for redundancy, as usual).