Complex delayed unpublishing I want a node that the user can edit the published setting on. (Via publish_content)

It should be unpublished by default 4 months after being published, but paused not reset when unpublished.

Also, there should be a cck field allowing the user to alter the time published beforehand but this should not be editable if the content has already been published and is in delay (Or unpublished and paused).

I've been looking at rules since this seems to be a pretty complex task, but I'm not exactly sure how to go about it and I'm new to rules.

After the initial (4 month) delay is over the user should be allowed to start this whole thing again.
Have a look at the rules scheduler module (part of the rules module). You should be able to do most of the things with date calculation and rules scheduler.

If you're missing something in rules you might have to implement your own rules action. Have a look at hook_rules_action_info().