As you mentioned, since you want the PDF generated after javascript has executed, renderAs="pdf" is off the table.
You will probably need to use a separate server running a headless browser such as PhantomJS. Phantom is capable of printing a page as a pdf, using that capability along with the Salesforce frontdoor login you can create a web service on your server which is called from your visualforce page. This service would login to salesforce via frontdoor login, redirect to the page you want as a pdf, and then phantom could render it out as a pdf after the javascript has executed.
Beware that session ids generated from visualforce don't work with the frontdoor login, so your web service is going to need to obtain a session id through some means other than passing it in. You would probably need to find a method of verifying that the PDF requested should be visible to the person requesting it.