Two fixes that together make the reconnect case work.
1. The declare point is send_cursor_channel, not the ADD request's hw_cursor
flag. The driver declares its IddCx hardware cursor when the cursor CHANNEL
arrives -- that is what emits 'cursor channel delivered - driver declares the
hardware cursor'. Recording it at ADD time (and before that in
capture_virtual_output) left CURSOR_DECLARED false, so the between-session
clean returned at its first gate and logged nothing, three runs in a row.
2. The cached control handle dies with the recycled WUDFHost. The first run that
actually reached the recycle produced a session with NO FRAMES, because the
ADD that followed used a stale handle. Retire it via
manager::invalidate_cached_device so the next ensure_device reopens against
the respawned host, and give WUDF a moment to come back.