pub async fn serve(riley_cms: RileyCms) -> Result<()>
Run the API server with graceful shutdown support.
The server will drain in-flight connections when receiving SIGINT (Ctrl+C) or SIGTERM (Docker stop / Kubernetes terminate).