never wait more than 10ms between two reads in the port-based com method

We're still using a busy-wait read loop when communicating through
ports. The current method to determine the wait time was to use
1/10th of the total timeout when the timeout is greater than 10ms,
and simply use the total timeout if lower than 10ms.

However, this leads to really big sleep times if the requested timeout
is high (e.g. 1s for 10s timeout), which causes the system to drop
data unless the input buffer sizes are insanely huge.

Use 10ms as a "middle-ground" between CPU load (while busy-waiting) and
reading the input port "often enough". This is truly a workaround, the
proper fix would be to (finally !) be port-triggered.