probably that you were underestimating the time required to parse the format string, which is probably greater than anything else. Everything else is simple searching and copying whereas the parsing is probably at least a quadratic-order function.
No it will be linear (on the length of the format string). But just rather more expensive than you probably expect. There is a lot of red tape lurking.
David