Given a list of strings items and a sequence of search queries queries, implement a function that simulates an asynchronous search bar. Each query starts a filter task after a debounce delay. If a newer query arrives before the previous task finishes, the older task must be ignored. Return only the UI updates that should actually be rendered, skipping consecutive duplicate result sets.
def simulate_search_updates(items, queries, debounce_ms, work_ms):