Hi Luncheon,
I don’t have a straight one-fits-all answer, as with everything, “it depends” 
For context: your Yunohost and S3 compliant storage are at home or at a VPS?
I can think of multiple levels of backup; depending on your needs and expectations one, another or a mix could help you:
- “Full machine backup”: my Yunohost runs in a container on Proxmox. Proxmox offers to backup the full (running) machine. Restoring it will put the whole system back the way it was at the moment the backup was made.
- “Yunohost per app backup” (with or without data): Yunohost creates a backup of an app before upgrading it via the Yunohost backup mechanism. By default this excludes data from apps like Nextcloud, but when running this mechanism yourself, you can chose to include the data.
- File level backup: you define a list of directories to backup in the configuration of your backup tool
Probably there are more choices and for sure more implementations, but this gives a crude categorization.
Guessing rclone has to do with rsync, and checking the website seeing “Rclone helps you [to] backup (and encrypt) files to cloud storage”, I think rclone falls in category #3, where you give a list of directories to clone. Is that correct?
To restore apps (with all their settings and data) to a fresh Yunohost installation, I would use Yunohosts built-in backup mechanism to create restorable modules. Be sure to tick “including data” for space-hungry apps that have it disabled by default.
After running these backups, the resulting files can be sent off-site for safekeeping.
When using the app-backups created by Yunohost for recreating an installation from scratch, they have never failed me. This way it is possible to restore a backup created on 32-bit Arm to a new installation on 64-bit AMD.
I don’t think I restored apps from an old version to a newer Yunohost/Debian version. In many cases that would work, but in some cases specific versions of libraries are packaged, which don’t exist on, or are not compatible with, a newer Debian version. An example is Firefox Sync: it is built on Python 2, which does not exist anymore.
The post got a bit longer than I intended, without a clear advice. I hope not to bore you with it 
I also recognize that I did not really answer all your questions. Don’t hesitate to re-iterate the bits that are important for you.