Thanks for sharing - I 'll keep that in my kit bag!
A couple of minor points (I am the pedantic best practice police!!)
Your process has a potential infinite loop - you recover, resume and link back into the flow, if anything goes wrong with one of your interfaces you have an infinite loop with logging turned on (a nice way to potentially blow your database size limit).
Also, arbitrary waits that just pause should be replaced with intelligent waits that wait for something - like text changing or something. There is a surface automation of mainframe guide and example that shows how you might do this for a green screen.
The best practice guide on the portal mentions both infinite loops and arbitrary waits.