Commerce has functionality to remove old carts. But locked carts can't be removed. This code fixed this
/**
* Implements hook_query_TAG_alter().
*/
function MYMODULE_query_commerce_cart_expiration_alter(AlterableInterface $query) {
// Remove old locked carts.
foreach ($query->conditions() as &$condition) {
if (isset($condition['field']) && $condition['field'] === 'commerce_order.locked') {
$condition['value'] = TRUE;
}
}
}