I added weight's to guarantee order, uasort is used for sorting and doesn't guarantee the original ordering when equal, so the weights will handle this for sure.

https://github.com/Islandora/islandora/blob/7.x/includes/derivatives.inc#L42
http://ca2.php.net/manual/en/function.usort.php
https://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_sort_weight/7