Ничего не поделаешь, я ставил перед собой задачу подружить именно protothreads с проименованными состояниями. Наимение конфликтный вариант - переходы по goto.
Альтернатива - описывать тело protothreads внутри каждого состояния пользовательского case мне не нравится. Хранить состояние КА как две переменных (пользовательский case + pt), в моем случае, избыточно.
Если писать не под protothreads, а хоть под какой-нибудь корпоративкой, то смысл использовать goto вместо case испаряется.