testbench: ipc: add test for receive timeout under send preemption

I.e. that the timeout is carried from the time of send-phase completion into
the passive receive, rather than being reloaded. The IpcHelper::sleep() fails
with a timeout code when the test succeeds.
ipc: obey receive timeout under send-phase preemption

This can't be tested right now because there is no send-phase preemption. So
into a branch it goes.
testbench: ipc: tighten recv_timeout_from_send conditions

Add an upper bound for diff_ms, basically. It'd be nice if the test scripts
supported an "> implying implications" macro, or something.