It takes 1.5 ticks (0.15 seconds) for a piston to extend/retract. While the piston is extending or retracting the block that it is pushing immediately turns in to a "move block" (id: 36) during those 1.5 ticks. This moveblock doesn't conduct redstone power, it works like glass. Therefore if a solid block is moved it immediately blocks signals from repeater or torches, and releases signals from wires the solid block was blocking.
This is an example of an instant repeater where the input is on the right and the output is on the left. This design gives 1.5 ticks delay when the input switches from off to on, but gives 0 tick delay when input switches from on to off.
This is another example of an instant repeater, the difference is that this one gives a 1.5 tick delay when input switches from on to off, but gives a 0 tick delay when input switches from off to on.
There are many designs that gives a very small delay when switching from on to off and when switching from off to on "2-way instant repeaters", normally these designs gives a constant delay, for example there are designs that no matter how many repeaters you put in a row it will always take 2 ticks from start to end. These can be made by making all repeaters reset after a few ticks.
If a repeater that doesn't have a resetter built in is used you will have to wait (0.15s*number of repeaters) between turning of signal and sending a new one, because you need to wait for all the repeaters to reset.
Here is a video of a 2-way instant repeater in action:
(Needs new links)
2-way instant repeater / inverter with 0-delayEdit
By attaching a small circuit to output power during the 1.5 tick piston detraction / extension, 2-way instant repeaters / inverters with 0-delay are possible.