Comparing the caltopo.com main.js function p.c.sarsoft.GPSComms/handleResponse to that in CTD (all.js rather than main.js), I only see one difference, though I'm not sure if this is an issue:
in the online main.js:
in the CTD all.js:
Where 'c' is the second-level part of the function name in both cases. TO the untrained eye, is it possible that the online main.js should also say c.a.ajax instead of u.a.ajax?
I'll continue trying to find out why the host process is giving an 'Unchecked runtime.lastError: Native host has exited.' message both on success (CTD) and on hang (online). I believe the host has always exited in this manner, but will see if I can clean it up anyway.
Also as Matt suggested a few months back I will try to install this on a Mac to see if there are any differences.
Here's a .har from Chrome's devtools, showing the request in question, with the 405 (Method Not Allowed) response with message 'request method 'POST' not supported'. Had to zip the file since the ticketing system doesn't like .har.
VM1142:1 Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at Object.success (main.js?ts=1635187415451:2)
at l (main.js?ts=1635187415451:2)
at Object.fireWith [as resolveWith] (main.js?ts=1635187415451:2)
at S (main.js?ts=1635187415451:2)
at XMLHttpRequest.<anonymous> (main.js?ts=1635187415451:2)
I'm fairly certain it's not a problem with the gpx, because I exported the gpx as a file (not using GPSIO) and tried importing it as a file which worked as expected (did show the checkbox dialog).
This kind of looks like the incorrect URL for that ajax request is one issue, but working around that with the hardcode above brings back the same previous existing issue with 'Unexpected end of JSON input'.