Each FemtoLogger owns a bounded queue (capacity 1 024) and a worker thread
that drains records and invokes handlers. Calls to logger.log() simply
enqueue a record and return immediately.
Handlers (FemtoStreamHandler, FemtoFileHandler,
FemtoRotatingFileHandler, and FemtoSocketHandler) also own dedicated
queues and worker threads so file IO, stdout/stderr writes, and socket
operations never block the calling code.
When any queue is full, the record is dropped. Each component emits
rate-limited warnings and maintains drop counters
(FemtoLogger.get_dropped() and handler-specific warnings) so you can
monitor pressure.
Record metadata currently only tracks the logger name, level, message text,
timestamps, and thread identity. The Python API does not yet expose rich
LogRecord attributes such as the calling module or exception info.