Speaking about replication to cloud, I would consider asynchronous replication only. Something like Storage Replica in WS2016. IMO this is the only feasible way to achieve high performance and have an ability of failing-over to the cloud in case of disaster.
If there is a need to deploy a highly available infrastructure on-premise, a hyper-converged approach is often the most optimal, despite the significant CapEx. For most cases, if it is possible to fit everything into two beefy servers "powered by" HPE VSA/Starwind/whatever while still having some room for future growth, I'd rather stick with it instead of buying 5+ nodes to build a capable VMware VSAN or S2D cluster. The fewer components you have, the less is a probability of shit hitting the fan.