Nick I don't understand your point. The suggestion here is that conceptually the task "always tries to be open".
a) If neither the Flags nor any of the contexts have opening times set ==> open
b) If just the Flag has an opening time set ==> that opening time works.
c) If just one Context has an opening time set ==> that opening time works.
So far so good, but what about clashes?
d) If two Contexts have conflicting opening times set ==> then whenever either opening time say open now, then then the task is open.
e) If the Flag has an opening times set that conflicts with any of the Contexts ==> then whenever any of the opening times say "open now", then then the task is open.
In this way Contexts and Flags that have no opening hours set have no effect. So in short user needs to be careful with their opening hours.
My core point is that I see no good reason why Flag shouldn't have the ability to have opening hours. And for simplicity I see no reason why a Flag's opening hours should over-ride that of a Context in any way that is different from how Contexts interact with each other. However I don't feel strongly about his and there may of course be very good reasons, in which case let's hear them - ideally with some examples. :)
J