Pretty much the only correct way to do this is with firmware (imsm) or
hardware RAID.
If you have empty drives anaconda can raid1 everything including the EFI system partitions using mdadm metadata 0.9. But since the firmware doesn't know this ESP is an array there is a possibility only one ESP gets modified which is effectively corruption.
What's really needed is a boot services daemon that manages boot and ESP volumes. Instead of RAID 1, it keeps them synced. And instead of them always being mounted persistently, they're mounted on demand only when they're modified, and only modified by API via the daemon. Of course this doesn't exist yet. But without it, we've regressed in functionality and reliability.
Chris Murphy