Your best bet for handling unforeseen issues gracefully will most likely be using the provided REFramework Template in UIPath Studio's start menu. It follows a transactional model based on Orchestrator queues but it is easily modifiable to fit a use outside of Orchestrator queues. It also contains automatic retrying of failed items and handles all process stopping exceptions. Obviously specific edge cases that you encounter in testing will have to be managed on your own, but you can rest assured knowing that this framework won't let it crash and burn if something does go uncaught.
implementing a secure login procedure
UIPath Studio's "Type Into" activities have a "secure" option which will take a SecureString (meant to be combined with a Get Credential activity to retrieve an Orchestrator credential asset, but you can manually create a SecureString if you please) that will securely enter a password into a specified input.
Dealing with dynamic elements:
Fuzzy Selectors will be your best friend in on click / type into activities to deal with dynamic elements. You can also utilize UIPath's built in UIExplorer to build solid and reliable selectors for dynamic elements by allowing you to input variables for element selectors.
The Object Repository may also serve your use case well if you find yourself automating the same screens over and over, but it may not fit your exact use case here.
Finally, as far as Robot Checks... you can only do so much. If it is a Captcha that only requires that you click a box, you may be able to get away with it in Studio. If it's anything more complex than that, you are probably SOL. After all, automations are what Captchas are trying to filter out.