feat(approvals): user-configurable headless approvals + event-loop-safe waiting (#240)