Short:
loadsave_frame_t::~loadsave_frame_t() tries to write a cache but proceeds even when the file can't be created.
Long:
loadsave_frame_t::~loadsave_frame_t() tries to write a cache. It calls file.wr_open which returns false because hte file could not be created. The caller (destructor) ignores this and proceeds, using the object in reading state for writing without valid file, and from there it all falls apart. When backtraced while frozen, program appears to be trying to find "<".
Don't ask how I managed to make that folder unwritable on Windows. It does not matter to the bug ;)
Fixed r5977.