Difficulty understanding pre-emptive vs non-preemptive CPU scheduling
In circumstances 1 and 4, the current process can't continue running.  Therefore, there's no choice: the OS scheduler has to step in and select a different process.

In circumstances 2 and 3, the OS scheduler has a choice: it can either allow the current process to continue running, or it could step in and put the current process to sleep and select a different process to run.  The latter operation is called "preempting" the current process and scheduling a new one to run.

So, yes, your understanding sounds about right.