* intitial refactor:
- Add Context-based graceful shutdown and drain phase for enqueued requests
- Use buffered channels vs. mutex for concurrency mgmt.
- Use atomic.Pointer vs. locks for FF mgmt
- Use Callback ifc vs. lossy internal tracking for unit test result validation
- Add new APIs mirroring current that accept caller's Context to control
operation timeouts
* expose batch submission timeout with default equiv to old hardcoded timeout
* restructure event submission and batching pipeline
* overhaul tests; implement new stress tests and address coverage gaps
* parallelize tests where safe to do so (3x CI time savings!)
* introduce faster pure Go JSON seralization library
* more refactors: unit tests & benchmarks
* DRY up shutdown req drain and prepareForSend serializer
* use go-json in CLI utils too; remove redundant helpers
* move error type to proper pkg
* DRY up loop() and fix deadlock in old test case
* normalize CI and Makefile test and benchmark target behavviors
* more realistic feature flags benchmark
* replace leaky time.After pattern with idiomatic safer Timers
* internal queue size minimums decoupled from batch and worker configs
* remove dead comments
* fix test bug
* update default http.Transport cfg to avoid conn pool as bottleneck; update batch enqueue limiting strategy and tests/benches
* adjust stress test defaults to match prod
* update flaky tests and rm stale file
* make graceful shutdown timeout opt-in for now
* fix tests that reverted to hold helper utils during rebase
* fix flaky test due to overhead from -race detector now default in test flags
* add more graceful shutdown test cases