Der Vollständigkeit zuliebe: Beide Varianten zu mischen, also sowohl ein zweites Request-Objekt als auch der try/catch-Block in der saveData()-Funktion, scheint die beste Lösung zu sein, die mir einfällt.
Mit try/catch-Block, aber nur einem Request-Objekt, kommt es doch zu vielen Hängern, wenn man ständig das Glück hat, den Intervall von loadData() zu erwischen. Mit einem zweiten Request-Objekt kommt es nur zu einem Hänger, wenn man ganz schnell etwas hintereinander eingeben möchte. Bei normalem Chatverhalten sollte dies m.E. zu verkraften sein.