I am happy that my script helped someone

. But please consider that it is a really basic script and I am no expert.
2 MBit = 1024 Kbit * 2 = 2048 KBit
I don't know your real limits so I would start with 2040 (one Kbyte lower). You can test your connection through pinging your provider. I would at first ping without the script and without aMule. After that I would run the script and start aMule.
You have to wait some time until aMule reaches the maximum upload and ping your provider. If the ping is much higher, lower your upload limit and rerun the script and wait a moment. Repeat this until your ping is normal or at least nearly normal.
To test purposes I would use 100% instead of 99%t. If you find your limit set it back to 99 or the value you want.
According to your post you have all needed modules. To verify this I would use the command "tc -s class ls dev eth0" (replace eth0 with your internet interface).
You can check in expample that the aMule classes aren't zero or when you ping that the rate of interactive normal traffic class (the first one) increases.
cu
Mr Faber