Значит ты не понял о чём я.
Я предлагаю тебе для каждого устанавлиемого субклассинга создавать крохотный переходничёк, который будет передавать управление на твой WindowProc, если проект работает, и на оригинал, если проект остановлен.
В таком случае, если проект нормально завершается, и сабклассинг нормально снимается, то снимается и твой переходник.
Если же проект завершается ендом, то переходник остаётся в памяти. И сообщения продолжают передаваться им, а он, вместо того, чтобы вызывать код, который уже не существует (ведь из-за этого же крах происходит?) вызывает оригинальный WP.