The ATS was coded on the train for a reason, in fact any more trains being developed will have that feature.
Why?
Simple reason. When doing a run, we want to implement realism in the routes being created which includes trip arms created by BStlyes. These trip arms are supposed to trip the train in case you over run a signal. To solve the issue with the roll sign merely lies inside the coding where you can separate which code does what without interferring with other coding.
A great example is Chris's R33ML.