Sorry I must have misunderstood because I though a race condition was when you try and send 2 commands at the same time. Your rule and log show you have experienced a race condition.
You mentioned you were using old mqtt binding from you item to something.
The mqtt will not see the Decrease command just a state value.
It is unlikely Volume.sendCommand(Volume.state - 20) create a race condition in any case you can use a concurrency guard to protect you from a race condition.
This we can only help on the information you give and we sometimes assume things. You mentioning using a V1 MQTT means to me you have had your system up and running for a long time. You probably understand alot about how openHAB is structured.
Please explain what you are tying to do.
I hate posting this link