Neil,
no there is no way to guarantee that, when the simulation runs in real-time (scaled or not), that's the only thing it cares about. It will pass in any input it gets during a time-step to be used for the next time step, but it won't wait for data.
As you say, the FMI co-simulation approach solves that problem (and removes the overhead of having to pass everything over TCP/IP.
The process would be something like:
1. Initialize simulation
2. Get outputs/set inputs
3. Advance time to tn
4. Repeat from 2.
So no, you wouldn't need to reinitialize the FMU (as long as what you want to change can be exposed as inputs).
Regards,
Otto