Going nearly crazy

what's wrong with snprintf() then ?

because your requirement about

  • to be absolutely sure, that calling functions from the library never crashes my program and never cause memory issues.

is not guaranteed if you use dynamically growing strings and our arduino's don't handle try/catch for exceptions...

(Try catch is a quite an expensive implementation as the program stack gets copied once for the try block and also for each catch block so that context can be reinstantiated In case the try goes wrong - so if memory is already small...)