по п.1 и 2 делаем так - включение транзистора двумя сигналами одновременно, причем сигналы управления инверсные (редко порты вылетают так чтоб разные сигналы, были пробои либо все порты к питанию, либо к земле. + питание на реле подает отдельный ключ+реле с третьего порта. и еще есть контроль пробоя транзисторов (диодное монтажное или) и контроль наличия питания на реле. при этом подача сигналов разрешения в разных местах программы и при каждом действии проверяется условия разрешения.
более дешевый вариант если реле много - два ключа с инвернсыми сигналами на реле, подающее питание на управляющие реле. +контроль пробоя транзисторов.