I'm making the distinction because all code using the runtime will properly deschedule/reschedule the running task. When using FFI code, a green task will be unexpectedly blocked when it shouldn't be if the process blocks, which is why it needs to be considered in the first place.

A CPU bound loop is irrelevant because rust doesn't preempt tasks, so the behavior you would see with a CPU bound loop in C is the same as a cpu bound loop in rust. The behavior of blocking in C is not always the same as the behavior of blocking in rust.