The Problem
The recast time on certain abilities aren't in integer multiples of a second so if you lock a macro and use the wait command you're going to encounter macro clipping.
Macro clipping is when your recast timer clips abilities in a second macro you're spamming during the ~0.5 second interval macrolock comes off and your recast timer for the executed ability is in effect.
Video Demonstrating Macro Clipping:
https://youtu.be/J73GDRw7mTA
The Solution
This is easily implementable in the game. Simply add another macro called macrolockrc <defaultrecast_time> which will lock the macro for the recast time of a subset of spells/abilities. Ideally it would be affected by skill speed and spell speed so the macro is spamable with a subset of abilities.
Example:
This would lock the macro for the recast period of hard slash.Code:/macrolockrc 2.5 /ac "Hard Slash"
Thank you for your feedback.