Guard: heading_within_tolerance_guard
Description: True if the agent's heading error relative to the bearing toward
its current waypoint is within ctx.configuration['heading_tolerance_off'] (rad).
heading_tolerance_off is set to half of heading_tolerance_on by automaton.py,
forming a deadband between this guard and heading_not_within_tolerance_guard
to stop chattering between Cruise and Transition_to_LOS.
Source: src/colav_automaton/guards/guards.py
Tests:  tests/test_guards.py::test_heading_within_tolerance_guard

# | Agent (x, y)  | Heading (rad)     | Waypoint (wx, wy) | heading_tolerance_off | Result | Reasoning
--|---------------|-------------------|--------------------|------------------------|--------|----------------------------------------------
1 | (0.0, 0.0)    | atan2(10,10)~0.785| (10.0, 10.0)       | 0.5                    | True   | heading already points at waypoint, error ~ 0
2 | (0.0, 0.0)    | pi/2 ~ 1.571      | (10.0, 0.0)        | 0.1                    | False  | heading 90deg off bearing (0 rad), error ~ 1.571
3 | (5.0, 5.0)    | 0.0               | (5.0, 5.0)         | 0.1                    | False  | agent already at waypoint (short-circuit -> False)
