I think it's best to create a meta object to store the information about the exception in. Let the java action return an object of this type and store the error message in it. You can also add an attribute of type boolean to the meta object to store if the java action completed successfully. Now you can use it anywhere in your microflow.
Or if you want to make a difference between errors you can return a string with the error type and use this in your microflow.
Sure. There are absolutely no model changes needed for this functionality. Use the following code within the execute function of your JAVA action:
this.addTextMessageFeedback(MessageType.ERROR, exception.getStackTrace().toString(), true);
Where