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.
$conditions = &$query->conditions();
foreach ($conditions as $key => $condition) {
if (isset($condition['field']) && $condition['field'] === 'commerce_order.locked') {
unset($conditions[$key]);
break;
}
}
}