The problem lies in being LabVIEW really parallel.
You could put the read, write and poll together in one subvi in separate cases.
And connect to the case what you need via an enum.
A subvi that has not been made reentrant will stop all callers except the first and continue with second etc callers after the first has finished.
This behaviour makes it easy to have locking on the gpib bus without having to write software for it.
greetings from the Netherlands