make timer explicitly movable
implement experimental spawn_coroutine which keeps the coroutine alive as long as it is running or yielding