The other option would be having the buttons drive the AIU. Then JMRI would watch that and drive the turnouts. That would mean the turnouts only move in response to turnout commands known to the command station and JMRI. But then JMRI becomes a critical part of the operation of the turnouts. Generally that’s not an acceptable choice.
?
But if you want to protect movement of the turnouts based on occupancy, namely prevent movement if a train is on that block, then involving JMRI for that decision path might make sense.