Declares when the runtime may consider a Consumer “started”.
Immediate (default) preserves the classic fire-and-forget semantics:
spawn_consumer_task returns as soon as the consumer task is spawned,
matching the behaviour of timer, file, direct and similar polling
consumers whose start() IS the lifetime loop.
Explicit is for resource-binding consumers (HTTP, WebSocket, …) whose
start() returns control only after the resource (e.g. TcpListener)
is bound and ready. The consumer MUST call ConsumerContext::mark_ready
after a successful bind so the runtime can await readiness and propagate
pre-ready start() errors as proper startup failures.
Adding this as a default-returning trait method keeps every existing
Consumer impl backward compatible.
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.