Some performance optimizations

- self._clear_for_send was decremented at wrong location
- added semaphore for use in fill queue processing (max entries 20, fill queue acquires, send queue releases upon send)
- added signal of state for use in fill queue processing, no more sleep-wake-check-loops there
- CommandQueue.peek also was not synchronized

Found a couple of issue to tackle next (see TODOs)