Returning the same page (or rather, the same "content" - I assume you are not literally redirecting to the homepage?!) with different status codes does seem a bit "wrong". Although this isn't necessarily "bad" - the website is decommissioned after all.
We are returning the homepage [stating that the offer is no longer available] with a 200 header if navigated to directly.
This seemed odd initially when first reading... if the website is "decommissioned" then why not just return a 404 for everything? However, depending on what the site previously offered, it may be preferable for Google to index this "notice" so users can find it. (?)
We are returning the homepage with a 404 header for resources that cannot be found (including all the old pages that used to have content).
Whilst I don't think this is necessarily "bad", I think it would be preferable to return a more customised 404 which either contains the additional information about the site being decommissioned or links to the homepage (where they can get more information). That way, the homepage (content) only ever returns a 200 OK and it's more immediately obvious to the user that the resource does not exist.