I didn't know, so I went and looked at the code. XO prunes that list in a cleanup step: backup runs are kept for 31 days, and other tasks are kept by count, the newest 1000 (https://github.com/vatesfr/xen-orchestra/blob/b59c8f3d20954aa1d72e92c1e8f2db635d74fcba/@xen-orchestra/mixins/Tasks.mjs#L119-L127).
You can change both with tasks.gc.keep and tasks.gc.backupKeepDuration in the xo-server config.
As far as I can tell the cleanup runs when xo-server starts, not on a timer, so a long-running XO can collect quite a few before the next restart.
My guess for the Cloud Backup entries @acebmxer still sees after 30 days is that they're kept by count rather than by age.