Use pointer-sized atomic run flags in threaded fixtures, including dynamically
allocated discovery and browse flags. Pointer sizing supports the MSVC atomic
implementation as well as C11 and GCC atomics.
Serialize the client error-injection test with the server network callbacks
before accessing the internal session and shared send buffer.
The server_deleteObject() function needs to handle concurrent scenarios where
client threads try to delete nodes while worker threads are creating them.
The original code used an infinite loop waiting for UA_STATUSCODE_GOOD, which
hung when nodes returned BADNODEIDUNKNOWN (deleted during construction or not yet created).
Changed to retry up to 100 times with 10ms sleep between attempts when getting
BADNODEIDUNKNOWN. This provides proper synchronization (max 1 second wait) for racing
add operations to complete, especially important under valgrind where operations are slower.
The loop exits immediately on UA_STATUSCODE_GOOD (successful delete). After retries,
accepts both GOOD and BADNODEIDUNKNOWN (node deleted during construction or add failed)
as valid outcomes.