The way we handle this is once 14 days go by, tickets with the status 'on hold' are automatically set to 'closed' status.
This is handled through escalations:
Tickets - Escalations: Automatically close tickets that receive no response
It should be easy to add a special status for this and use escalations to make it work the way you need.
I think your request is already implemented.