Checking to see if the clipboard changed is exactly what the CLIPBOARDSEED() function is for. I even have a set of actions stored in my KMFAM to make it easier to write macros that take advantage of it:
Check That Clipboard Has Changed.kmactions (1.5 KB)
What may not be obvious about these is that the "Copy" action is modified to timeout after a few tenths of a second without notification or aborting the macro.
Here's how these actions would work with your use case:
g: markdown bold quote.kmmacros (3.3 KB)
Maybe try this and see if it works any more reliably?