Just played around with some exclusive gateways and enums in user-tasks!
An exclusive gateway means exactly one outgoing sequenceflow. A converging exclusive gateway means that it doesnt wait for a second token. So at the point a token arrives at the gateway it will be send to the outgoing sequence flow even if theres for some reason another one out there reaching the gateway in some time.
Theres one thing to say about the enum: If you want to reference a chosen value from the enum in another usertask just use a string to represent it. I saw a lot of projects do it like this.