Да, действительно - я что-то забыл, что если точки переключения мы позволяем делать где угодно, то теряем одно из преимуществ кооперативки - ненужность EXCLUSIVE и проч.

Так что, баш на баш: или нужно явно ограничивать неделимые блоки, либо явно расставлять переключения (у нас Tasks.Pass).