это как раз обычный объект, ничего хитрого для внешнего наблюдателя нет
не совсем понимаю. вот смотри. была f1(), внутри выполнили корутину c1, заморозили (yeild), теперь из f1 переместили c1 в другой тред. Произошла разморозка, но стек (да, конечно, внешний по отношению к корутине) теперь != существовавшему на момент заморозки. а на стеке — контест объемлющей f1(). что-то нехорошее получится