[CS] Use a Celluloid condition rather than signals to avoid a potential race condition