I mean if one delegate refuses to reveal S in time, it also means that it refuses to produce block in time, it should be punished by being fired immediately, and be replaced by another candidate delegate. (It could be the candidate's first time or not, if first time, S=0). If the delegates could be updated more often, it could be bettor...
If one entity have control to X continuous delegates, after the other (100-X) delegates reveal S, then it could calculate out the possible 2^X values in 100th block, 2^(X-1) values in 99th block ... 1 value in current block.
Given that the required interval block count between ticket purchase and draw is V.
The delegate can only precisely attack by purchasing selective tickets in the next (X - 1) blocks, with V=1. the maximum X is 100. If we assume that there no such entity can manipulate all 100 delegate in period. Then we can avoid this precise attack by requiring that the jackpots drawing block should after 100 blocks since purchase (V=100).
The left problem are the odds the bad entity can get, but this advantage is partial, they still need to buy a lot amount of tickets to win. I think the expectation gain of the odds are relatively smaller to their ming revenue, and the delegate/entity could gain bad reputation because of this.