You are just confusing the array levels, ordering is not done inside the meta_query level but on the main query level. It is the difference between two classes:
https://codex.wordpress.org/Class_Reference/WP_Query
https://codex.wordpress.org/Class_Reference/WP_Meta_Query
Also, as the meta query codex says: “Custom field value can be an array only when compare is ‘IN’, ‘NOT IN’, ‘BETWEEN’, or ‘NOT BETWEEN'”… I think you really only need NOT EQUALS here to check footnote value is set… I don’t think you need to check if date_edited exists so you have a much simpler query:
$args = array(
'post_type' => 'page',
'meta_query' => array(
'key' => 'footnote',
'value' => '',
'compare' => 'NOT EQUALS'
),
'post_status' => 'publish',
'posts_per_page' => 10,
'no_found_rows' => true,
'orderby' => 'meta_value_num',
'meta_key' => 'date_edited',
'order' => 'DESC'
);
Hope this helps… and that your fever has broken? 🙂