Semian has a mixed identity where it started solely as a bulkheading library (which requires sysv_semaphores) but then had circuit breakers added (which are per-process).
This ended up leading to some confusing segments in the codebase where we fully disable semians if sysv_semphores are not enabled.
We should go over the code and clean things up to distinguish clearly between Semian being disabled and semaphores being unavailable.