Once the timers do what you want, pull the UPS wall plug with the real load on it and watch the whole chain run: server goes on battery, the timer starts, the Pis get their shutdown, and the timer cancels if you plug back in early. It's the only test that exercises upsmon, upssched and every client together, and it tells you how many minutes you actually have, which the charge reading on the front of the unit doesn't.
If you'd rather not pull the plug on live gear, upscmd -l <yourups> lists what your unit supports, and on units that expose it test.battery.start.deep runs a real battery test.
HAOS doesn't really share. It's a full Linux distribution designed to be the entire OS on whatever it's installed on, and it runs its own internal containers through the Supervisor. The Supervised install, the old middle route, is no longer supported (its end of support was release 2025.12).
So on one Pi 5 you pick. Keep HAOS and live with what runs as an app there, which is what add-ons are called now. Or put a regular Linux install with Docker on it and run the official Home Assistant Container image next to the arr stack, Deluge and Jellyfin. That's the whole trade. Container has no Supervisor, no apps and no one-click updates, so anything you run as an add-on today becomes its own container, and Thread and Z-Wave, which run as apps, get no out-of-the-box support. Either way, take the full backup first, as uten151 says, and I'd do the SSD move soon: Home Assistant's own database writes can wear out an SD card.