When a scheduler starts up it writes an entry in one of the database tables, ujo_ha_process.
The scheduler logs what its role is, primary or shadow or tie-breaker.
It proceeds to update its time stamp so that any other scheduler can view this table to check its status.
When a scheduler is stopped via normal methods, services or unisrvcntr stop, the scheduler removes the entry from the db.
If the primary scheduler is stopped cleanly and the shadow scheduler sees this it will remain in dormant mode.
It is only if the primary scheduler ends abruptly such that the entries in ujo_ha_process for the primary remain and the time stamp becomes stale that the the shadow scheduler assumes control
Below are links to the documentation that speak more to Workload Automation AE high availability: