As per the title: why isn't there an action in CiviRules to be able to change membership status i.e. from active to cancelled? This seems like something a lot of people would use. Is anyone working on something?
it is not there because apparently no one needed it :-) The actions in CiviRules get added whenever a CiviCRM user funds the development of one or develops one and shares it as a general action. So this has not happened up to now. If you really need it you are very welcome to develop and share it, or fund the development by a partner who will most certainly share it.
I totally understand if you can not develop nor have the funds available. That then means you have to wait until someone else invests energy or funds. The answer to the why question is then again no one so far has :-)
Further to Erik's response, I would go one step sideways! Most of the clients we have will use the Membership Status Rules to trigger changes of state in the membership status i.e. after the end date passes move the membership into Grace and then after a period of time move to expired. I think the real question is what are you trying to do that requires CiviRules and is not catered for by the standard Membership Status Rules? Finally if you did use something other than the Membership Status Rules you would in effect be setting the override flag on all memberships therefore potentially causing confusion on what the source for a status change was - was it triggered by CiviRules or Membership Status Rules? Just my two pennies worth!