Hard-timeout memory leak behind a silent no-op
What broke
traceback_clear(exc) silently failed on a live frame, so a traceback–frame reference cycle kept memory alive after hard timeouts.
The fix
Broke the cycle with exc.__traceback__ = None and added regression and smoke tests.