What are easy to understand sources to learn how to use the new IO?

What you are describing you can almost do with std.Io, see std.Io overview

However, the run blocking task in an independent runner, that is something that is foreign to std.Io, you would need to hack it around by having multiple io instances of different type. Or you use my zio API, which is exactly the model you seem to know, similar to Rust’s Tokio or Python’s asyncio.

For the timeouts, that is also something currently lacking in std.Io, see this blog post on how I solve it in zio: Timeouts in zio | Lukáš Lalinský