How about 301 redirecting to the main product listing with some sort of extra parameter on the URL (?productExpired, for example) that triggers a message like "The product you are looking for expired, check these"?
Of course, then I would add a canonical on the page with the ?productExpired.
Does this make sense?