всё довольно просто: при нажатии на кнопку сохраняется тем или иным способом, что дверь открыта, и дверь открывается, при следующем нажатии в том случае, если дверь открыта, она закроется. Если тебе хочется, чтобы происходило это лишь при одновременном нажатии - строй логический оператор AND (каждый входной сигнал инвертируется, они сводятся в одном узле и дальше выходной сигнал инвертируется), или, если ты разбираешься в командах, проверяй нажатия через /execute if block, что гора-а-аздо удобнее...