Cadence does support processes that run unlimited time. We have workflows in production that are always running. For example there are services at Uber that have an always open Cadence workflow per rider.
Also how does it listen for events? From polling?
Actually at Uber large number of services are being migrated from Python/Celery to Go/Cadence.