optimize internal workflow for coroutine mode
new feature: coroutine task