The omega <-> laser_optics interlock
Bidirectional, Python-session-only:
sample_stage.omega is blocked unless laser_optics.is_out.
laser_optics.us / .ds are blocked while omega is moving.
Raises a MotionInterlock exception before any CA put, or stops
the motion in flight if the condition changes mid-move.
Scope: Python only in this session. Does not disable EPICS PVs. Does not
protect against MEDM jogs, caput, other Bluesky sessions, or a
Python crash. IOC-level interlock is a separate (and welcome)
future improvement.