This is a good example of why not to do big string processing on a small MCU.
This is the message coming in over serial:
LX:0|LY:0|RX:0|RY:0|LT:255|RT:255|AB:0|BB:0|XB:0|YB:0|RS:0|LS:0|DU:0|DD:0|DL:0|DR:0|ST:0|BK:0|LJ:0|RJ:0|BG:0
If all you did was write a sketch that watched each letter come in, add it to a character array and counted micros until the next one and compare that to the total run time to get the message in that way, you might be amazed at how much idle time you'd be looking at.
Simple fact, the characters come in 1 at a time and 42 of those are delimiters.
You can process each part of the message as it comes in without using more than a 4-byte buffer and no commands that use string.h whatsoever. You can do that -faster- than the message comes in. I have already gotten one member here over that hurdle and his message strings from his IRDA are over 110 bytes long.
As you process each part you can be sending pieces of the return message and put the vibration motors into action. The interval is going to be short enough you shouldn't notice but just to make it shorter, try at least 57600 baud serial or good old 115200 which is over 10x the 9600 you use.
Nick Gammon hinted at the process by telling you State Engine, btw.