My workaround above didn't work, so I found another solution.
Here is what I'm doing:
The player can pick up creatures. If there are three creatures in one spot, only one creature needs to be picked up. It is possible that there may be plants in the way. Plants should be ignored.
Here is what happened:
(1) I used fingergestures as my start/idle state.
(2) When a click is found, the FSM jumps to the next state, which contains GetNextRaycastAllHit.
(3) GetNextRaycastAllHit gets a list of all game objects under the mouse (creatures, plants).
(4) A loop checks to see if the first object is a creature or plant. If it's a creature, the loop should break. If it's a plant, the loop should continue until a creature is found or all objects have been checked.
(5) If the first object is a creature, the loop breaks, and I can move the creature around.
(6) The FSM goes back to the start/idle state (directly linked to state that contains GetNextRaycastAllHit).
(7) Click on another creature. Data for the previous creature still in memory.
Hopefully this helps? It sounds like it's important not to have a direct link between the idle and raycast states?