Как работает совмещение mouse events и touch events в одном устройстве?
В общем итоге выяснилось следующее: В некоторых вопросах MS впереди планеты всей. При работе с самыми новыми устройствами от MS нужно использовать Pointer Events. Делается это примерно так:
Проверка:// Pointer Events нужно проверить отдельно, так они совмещают в себе и мышь и тач
var is_pointer = !!window.PointerEvent;
// Отдельная проверка для "менее современных" браузеров
var is_touch = navigator.maxTouchPoints && navigator.maxTouchPoints > 0;
Все, теперь можно использовать. Примерно так:if (is_pointer) {
    this.$handle.on("pointerdown", this.pointerDown.bind(this));
} else {
    if (is_touch) {
        this.$handle.on("touchstart", this.pointerDown.bind(this));
    } else {
        this.$handle.on("mousedown", this.pointerDown.bind(this));
    }
}
hammerjs.github.io
Мои товарищи используют, вроде то что надо.