Add every hash in the basket and calculate the highest factor, maybe the higher the factor the more difficult?, then search the user who's hash gives a remainder of 0 when divided by that highest remainder.
That should give real consensus.
When a certain threshold is reached for the size of a block, the user with the remainder of zero is searched, and the block is signed by that user's hash and added to the blockchain.
Maybe the closest to 0 remainder suffices to sign a block/basket.
When 2 competing basket's reach consensus at the same time, no signing will be performed and a new basket will be formed.
--> another randomness: pick the highest/lowest (if sum of all hashes is even/odd) hash as center and do a +/- with the average of all hashes and who's closest to those limits may sign the block.