The problem is that you are using the after
position, when the whole of the buttons div is actually a single line if you check its source code. Instead, use replace like so:
<operation>
<search position="replace"><![CDATA[<?php echo $button_cancel; ?></a>]]></search>
<add><![CDATA[<?php echo $button_cancel; ?></a><a href="<?php echo $backorder_link; ?>" class="button"><?php echo $backorder_text; ?></a>]]></add>
</operation>
Note that you could also use iafter
in place of after
if you're using vQmod 2.4.0 or above