Hooray! It works...
Very powerful stuff. In conjunction with additional usergroups created via noixacl we can now manage our fairly complicated membership online. For those seeking to replicate this and change a subscriber's group membership on expiry the 2 SQL actions needed are:
UPDATE `jos_core_acl_groups_aro_map` SET `group_id` = 59 WHERE `aro_id` = ( SELECT `id` FROM `jos_core_acl_aro` WHERE `value` = [user_id] )
and
UPDATE `#__users` SET `usertype` = 'New Group', `gid` = '59' WHERE `id` = [user_id];
(just modify the group id to fit your core table)
Special thanks to krileon!
Bo