Because your registration form is in React, you need to use SCIM to create the user in the Gluu Server. Note: you cannot call the SCIM API from the react app itself (there is no way to protect the SCIM client secret... and the SCIM API should **not** be Internet facing).
The username is just a string, so I don't see any problem using the id number.
For the email confirmation, I'd suggest defining this identity journey using Agama. Perhaps we can schedule a demo next week, as this is a very new feature, but it's perfect for this requirement.
For FIDO registration, I'd suggest deploying Casa to enable the user to enroll and manage their FIDO devices. You could also use an Agama workflow for this, although we don't have out of the box flows written for this yet, like we do in Casa.
So net-net, this is all very possible with Gluu Flex. But i think you need a better overview of the new capabilities. Like I said, the best path forward would be to schedule a meeting: https://gluu.org/booking