I wonder if this could be simplified to only a single get() call:

```java
int ch = choice.get();
if (ch == NONE) {
    return choice.compareAndSet(NONE, index);
}
return ch == index;
```
Since this method is called for every onNext() for the winner, this change might reduce the overhead by 2; haven't benchmarked it. In addition, switching to a volatile int choice + double-check synchronization might be a bit faster even. Thoughts?