fix: snapshot objs length before super() to avoid re-patching
The _last_patched_idx approach overwrites previously patched chars
when cur_item reverts after a figure with text ops. Instead, each
do_TJ/do_Tj snapshots len(objs) before super() and only patches
from that index.