Keep in mind that the bulk of the heavy lifting performed by a Web Script is typically done by the various Alfresco APIs that the Web Script calls, and those are native Java no matter what language the Web Script is implemented in. In other words, the performance difference between Javascript/FTL and native Java is likely not as great as you might think - for example, one Alfresco project I worked on where we rewrote JS based Web Scripts in Java (for performance reasons), the improvement ended up being less than 10%.
I'd be trying to further isolate where the time is being spent - for example instrumenting your JS controller to capture detailed timing metrics (both for the entire script as well as individual pieces of logic within it), comparing the total execution of the script against the total execution time reported by the client, removing the FTL template to see what difference that makes, etc. etc.
Cheers,
Peter