Come su detto, è un casino...
E' estremamente difficile evitare di inserire JS pur permettendo HTML.
Diciamo che se intendi avere un'applicazione "sicura" devi impedire di inserire HTML oppure abilitare un piccolo sottoinsieme di esso...
Chi ha idee migliori le posti, interessano molto anche a me soluzioni alternative!