Thanks for the post, very interesting idea with two Solr indices. In your primary Solr, for availability field, in order to compute its true current value you still need to know the availability of each property (say colour). Isn't it true?
Would it work, if you changed the values into a list of:
[red_true, blue_true, green_false] ?
You would still have the separate availability field for filter query efficiency, but you'd able to apply a single-pass algorithm and find the target colour.