However, there are experts on the forum. We'll see if they will weigh in.
I feel like you're about as expert as it gets over here
Or, at least, you respond to almost every question, so I suppose you must be.
Anyway, the way you get around with the lack of toggle functionality is with an inverter/NOT gate -- basically turns an ON signal into an OFF signal, and vice versa. There are many different logic systems which you can use to accomplish this -- fluid, mechanical, and creature are the three big ones. Fluid one is simply a water source on one side of door (linked to the input signal) and a pressure plate that activates on 0-1 water with a drain on the other. When the door is closed, there is no water on the pressure plate, so it sends an ON signal. When the door is switched open, water flows onto the pressure plate, activating it. This is probably the easiest way to do it if you have an infinite water source like a river or cavern lake that is connected to the map edge on your embark.
In mechanical logic, you would have a loop of minecart track in a 3-wide, 2-long area. On the north square of track, you put an east-pushing roller; on the south square, a west-pushing roller. The north roller is connected directly to a power source; it will transmit power to the south roller as well. Put another east-pushing roller on the southwest square of track, and place a N/S axle on the northwest square of track, which will connect to this third roller. Place a gear assembly a tile to the north of the axle and connect it to a power source. Link this gear assembly to your input signal. Place a pressure plate that activates when a minecart rides over it on the northeast square of track; this will be your output. And finally, place a minecart on the north square of track. Make sure to restrict access to the area once it's finished to prevent dwarves from getting run over by the minecart.
I'm not a big expert on creature logic, so if you want to use that you'll have to do it yourself (or ask someone else on the forums), but it's probably the hardest method to use, so you're probably better off using one of the two above methods.