Are you getting downtime because these "three different 3300s" are on completely different networks and not clustered, ie belong to different customers or something?
Adding a second controller to a network so you have resiliency is actually very cheap: the hardware costs very little as most of the costs are in the per-user licensing, which you already have.
It's a casino/hotel. We have two 3300's that are clustered to support everything but the hotel. Until recently we were using resiliency at all, mostly because my predecessor didn't care much about his job. We now have MANY extensions that haven't been configured with a secondary element yet, purely because of the man-hours involved.
The third 3300 is for the Hotel, and is not part of the cluster because our telecom vendor advised that this was the best way to keep the various hospitality settings from messing things up on the casino side.
So, it means knocking the entire hotel down for however long it would take to install and restore, and I would assume the multiple reboots on the clustered controllers would result in multiple fail-overs for sets, which still require 2+ minutes of downtime on every failover. Additionally, we have something like 9 analog service units, and all of those analog lines would be down for the duration.
Compared to a single reboot, it's a whole lot of downtime.
If I can't find any solution that allows me to upgrade, then I'll wait until I've had time to configure resilience for everything, but that's still a very long way from 'plan-A.'
On a totally separate but related note, this is supposed to work. If it's not working, I'm either doing something wrong, or have something configured wrong on the system I manage.
Either way, I want to fix the real problem rather than just work around it.