Sadly, I do not believe what you're trying to do is possible within the macro system we have available to us. Not to mention the issue of ability queueing not working with macros.

Your best bet is honestly just practice. "Feeling out" the duration so to speak and getting used to if.