Still a problem in 0.15.2
I can confirm that driving the last stage of your input chain with a redstone block on a piston does work as a fix (with as many relays running into the redstone block piston as you need). This leads me to believe it's a problem with the way piston timing and redstone timings interact.
This is an unfortunate "working as intended". It significantly increases the difficulty and size of toggle switches, and causes unexpected behaviour when moving between versions.
Still broken in 15.4.