JGL,
You only need two wires for RS485. I have this setup on my JMRI setup for testing. It is talking with an Arduino which acts like a CMRI node.
You guys are doing some interesting stuff here and I think will need to do this as well. I'm going to use servos for my turnouts will need a circuit for non-derail activation. The Servos will be able to be "thrown" by JMRI, Toggle, or Lionel Legacy.
I plan on using these for non-derail activation (block detection) circuit. https://www.adafruit.com/products/732
Which is a 16 port i/o expander over i2c and Adafruit has library for it.
I think I will use the schmitt trigger eliminate code in my program since it will be doing a lot of other tasks. I will also have relays added which will connect to Lionel LCS STM2 to update the ipad app.
JGL are you using 5v ground for detection or 18v AC?