Correcting a couple of misstatements in the question:
Now, to the answer:
Shuttle commander Jim Wetherbee was wont to say in the simulator when the clock hit T-31 seconds
Nothing can stop us now...except a thousand things.
He was right. Far, far more checking was performed than the simple "3 engines at 90%" test.
Even though the ground-based Ground Launch Sequencer (GLS) handed off control to the onboard Redundant Set Launch Sequencer (RSLS) at T-31 seconds, the GLS continued to monitor roughly 1500 parameters and could stop the count if any Launch Commit Criteria was violated.
For example, the solid rocket booster hydraulic power units had to start successfully at T-28 seconds and the subsequent test of the solid rocket booster thrust vector control system had to complete successfully.
The ground controllers could also stop the count manually.
A final command was issued from the GLS to the RSLS at T-10 seconds "Go for main engine start". If any LCCs had been violated up till then, the command would not have been sent.
Even after the main engines were started at T-6 seconds, checking continued. If the internal checks of the engines resulted in a "Major Component Failed" or "Engine Limit Exceeded" status, the engine would be shut down or would not start. (This happened five times in the program - the five shuttle "pad aborts").
Failures in the Orbiter hydraulic system during gimballing from the special start position to the liftoff position would have resulted in a pad abort, as would any failures in the Orbiter electrical or data processing systems that resulted in the engine controllers reporting a "Major Component Failed".
Addressing "Would there have been a delay between the "all-engines >90% nominal" and the release of the clamps, e.g., to allow them to settle at 100% (or 104% in the space shuttle)?" (sic)
This graph shows that the engines reached 90% in about 4 seconds. This allowed over 2 seconds of run-time over the launch commit criteria limit as well as allowing the shuttle stack to rebound from the start transient (the "twang").
(image source: https://space.stackexchange.com/a/34727/6944)
Addressing "And would there have been a more stringent third condition that all engine thrust readings be within a small margin of each other (e.g., 0.5 %) in order to minimize pitch and yaw moments in this vulnerable stage of the launch?"
If any of the engines was not running at a chamber pressure very close to what was commanded, the engine controller would have emitted a "Major Component Failure" response, resulting in a pad abort. Checks between the engines were not performed.
Addressing "Or would the control program check also that the launch vehicle has entered an appropriate launch program (e.g., "OPS XXX" on the space shuttle)?"
If the onboard computers were not in the proper major mode, not only would the RSLS not have started, but the countdown would have been stopped by the GLS. The OPS modes were not separate programs.
Additional sources -