A problem with the current implementation of fileio.open_dataset is that the order of operations (i.e. general selection then spatial selection/aggregation then temporal aggregation, etc) is fixed.
One way around this might be an approach @dougiesquire is using, where the order of operations can be set by listing relevant function names in a YAML config file. e.g. https://github.com/dougiesquire/Squire_2022_CAFE-f6/blob/main/data/config/CAFEf6.yml