This fixes the high-index ranged descriptor update path reported in #25895.
When a descriptor wallet detects use of a ranged item at a high index, MarkUnusedAddresses() currently expands every skipped item up to that index and records each destination in the address book. For large gaps, that turns a single high-index hit into gap-sized work and can make the import/update path appear hung.
Instead, advance next_index directly past the observed item and return only the observed destination. Skipped destinations are no longer materialized eagerly, but they can still be recorded later if they are actually seen in wallet transactions.
This intentionally changes listreceivedbyaddress(..., include_empty=True) behavior for this case: a high-index hit no longer creates a gap-sized receive address set. getnewaddress() progression, change derivation, lazy recording of later-used skipped addresses, and reload persistence are covered by the functional test added here.
Tests:
wallet_importdescriptors.pywallet_listreceivedby.pywallet_descriptor.pytest_bitcoin --run_test=scriptpubkeyman_tests,wallet_tests,walletdb_tests,walletload_tests