Investigate simpler condition handle and condition store implementations
The implementation of condition handles and the condition store (which are, by design, tightly coupled to one another) became somewhat complex and inelegant after simultaneously fulfilling the following requirements :
- New condition slots should be built by reusing condition data from existing slots, which means that slot allocation may read conditions
- Condition reads should be as fast and efficient as possible, and in particular avoid non-scalable operations such as acquiring locks
- Condition writes may be partially carried out in the event loop, in parallel with new event scheduling and thus slot allocation / construction
The goal of this issue is to investigate whether there is a way to fulfill all of these requirements with a less complex implementation, or to achieve agreement that some of these requirements are not that important and should be dropped.