¿Son malas las promesas pendientes de JavaScript para siempre?

Digamos que tengo una promesa llamadamyProm, y digo que tengo controladores de errores y éxito llamadosonSuccess yonError.

Siempre que mi promesa tarde más de 10 segundos en completarse, quiero una función llamadatimeoutHandler para ser ejecutado, pero si eso sucede, tampocoonSuccess nionError debe ser ejecutado (Del mismo modo, si cualquieraonSuccess oonError corre, no quiero mitimeoutHandler ser ejecutado)

Se me ocurrió el siguiente fragmento para esto.

new Promise((suc, err) => {
    let outOfTime = false;
    const timeoutId = window.setTimeout(() => {
        outOfTime = true;
        timeoutHandler();
    }, 10000);
    myProm.then(
        (...args) => {
            if (!outOfTime) {
                window.clearTimeout(timeoutId);
                suc(...args);
            }
        },
        (...args) => {
            if (!outOfTime) {
                window.clearTimeout(timeoutId);
                err(...args);
            }
        }
    );
}).then(onSuccess, onError);

Sin embargo, en caso de un tiempo de espera, mi promesa recién definida estará pendiente para siempre. ¿Podría esto tener algún efecto secundario negativo? Por ejemplo, el tiempo de ejecución no puede limpiar el objeto Promise porque todavía está pendiente (o algo por el estilo).