If a caldav-synced client deletes tasks - those deletions get synced to Nextcloud server. There is a trashbin for caldav though (introduced with Nextcloud 22.0) which is enabled by default. After a configurable period of time (default: 30 days) items get deleted from the trashbin.
No, as far as I know Nextcloud doesn’t keep different revisions of calendars (except for the trashbin mentioned before). The activity app shows calendar changes though.
You could use calcardbackup. Have a look at the README in the repo for creating regular calendar/adressbook-backups (including tasks).
For Calendar backup the Android (And I’m presuming the IPhone) app has a Contacts and calendar backup function. Hamburger menu → Settings → Contacts & calendar backup. This will create a .Calendar-Backup folder and a .Contacts-Backup folder, these will then get regular dumps in them of backups. I’m fairly sure this is a client side backup, no idea why it’s not implemented server side tbh. Unfortunately it looks like the VTODO are missing from the ICS files.
As @Bernie_O suggested using a script is a good way of doing it and to get everything I have used the cli tool cadaver in the past.
Create a .cadaverrc to automate your task
open https://example.tld/remote.php/dav/calendars/<<your user name>>/
mget <<your calendar name>>/*
create a ~/.netrc to automate your login credentials
login <<your user name>>
passwd <<your app password>>
Then you just have a simple bash script you can throw into a cronjob