So this method does indeed work, with some caveats:
The 3D -> 2D plane projection process can introduce a loss of precision and can cause false negatives in regards to line segments.
Example: If one has a 3D line segment starting at (2.5, 2.5, 0.0) and going to (5.0, 5.0, 0.0) which happens to hit a point along a Cubic bezier path segment that crosses (2.5, 2.5, 0.0) in the exact middle of the cubic path (T value of 0.5), one would expect a an intersection at (2.5, 2.5, 0.0) with a T value of 0.5 and a U value (representing the position along the line segment from the starting point) of 0. However, the result ends up being something like (2.4999045..., 2.4999045..., 0.0) with a T value of 0.49995.. and U of -0.0001.. This value lies outside of the line segment (and is also beyond the tolerance of my epsilon-based floating point equality checking) and would not be considered an intersection.
A possible solution is to "snap" values close to U values of 0 to 1 within a large multiple of the binary double floating point precision epsilon (from my testing, the multiple that works is 1.0E10 - this like having values like 1.0E-6 equal to 0.0).
However, I cannot simply override the U value to lie within the line segment, as I would need a full solution that contains all valid fields. In addition, I have to check that a point at this U is indeed on the Bezier curve. I need the Bezier's T value for a point.
I take this "snapped" U value, find the corresponding point along the line segment (which should be very close to the initial (2.49.., 2.49.., 0.0) value - in this case (2.5, 2.5, 0)) and perform a Bezier closest-T to guessed T and Point Newtonian approximation method with the 0.4999.. T value to get the corresponding Bezier T value, which should now be at or very close to 0.5. I then confirm equality with both points to ensure a collision within the line segment and bezier curve took place.
It seems like a lot for such a special case and it might be computationally inefficient, but it appears to work.
If anybody has any other ideas in regards to dealing with floating-point precision issues such as these, please let me know.