utils: use async_channel and await instead of a timeout.
As it is recommended in the rust-gtk book: https://gtk-rs.org/gtk4-rs/stable/latest/book/main_event_loop.html?highlight=channel#channels
The timeout code is longer and doesn't match the problem (waiting for one specific event).
I'm doing the same here as it was suggested to me on the discover_search page MR.