Root causes
- `request.*()` returns collection or object IDs that are copied across bars and contexts.
- Historical buffers or `max_bars_back` values retain more data than the calculation needs.
- Drawing objects are repeatedly updated or retained when fewer objects would represent the same result.