Как вы описали, самый простой способ сделать это - установить обработчик события onmousemove на теле. Это дешевле, чем вы думаете: очень мало вычислений выполняется для сохранения координат, и событие вызывается от 50 до 100 раз в секунду при движении мыши. И я подозреваю, что обычный пользователь не будет постоянно двигать мышью при просмотре веб-страницы.
Следующий скрипт помогает подсчитывать обработчики событий; на моей машине, перемещая мышь в Firefox, это добавило 5-10% к загрузке моего процессора.
<script type="text/javascript">
jQuery(document).ready(function(){
var count = 0;
$().mousemove(function(e){ count += 1; });
$().click(function(e){ $('#status').html(count); });
});
</script>