i guess we'll skip the low-level details of coroutines then, so the ability to save time with I/O comes from the fact that you can tell your operating system to send/receive data without actually waiting for it in your program
Is there any visualized explanation? I've checked several videos