Add a regression test that asserts the OpenAI (and ideally Ollama) provider streaming lifecycle emits :open and :close events when stream: true. Right now the change fixes a lifecycle bug, but there isn't provider-level test coverage to prevent broadcast_stream_open from being accidentally removed again (similar to the existing mock provider streaming test).
Originally posted by @Copilot in #308