Reads a single byte from input (blocking).
Returns -1 on EOF.
@override int readByte() { if (_inputQueue.isEmpty) return -1; return _inputQueue.removeAt(0); }