pub async fn run_cleanup_loop(state: Arc<AppState>)
Run the cleanup loop forever, sleeping the configured interval between runs.