100ms might not be long enough. I have seen initial tag creation take a lot longer than that, even on a ControlLogix.
Please try with a recent version of the library. There was some work done in the past year or so to handle some kinds of connection problems more gracefully. If you are still seeing issues, then this may be a bug.
Note that if the PLC is not there, and you use a timeout of 0, you should just see a continuous status of PLCTAG_STATUS_PENDING. Under the hood, the library will continue to try to connect to the PLC. It cannot tell the difference between a PLC that is not there and one that was turned off or removed from the network for some reason.
I will try to set up a test for this later this week to make sure that the case of timeout > 0 and no PLC generates the correct status.
Best,
Kyle