Since this is under the DTM community (which should really be renamed to the "AEP Tags" community now), I'll assume that you're using Adobe's tag manager for your tracking needs.
1. I normally just use _satellite.getVisitorId().getMarketingCloudVisitorID(). I find that the callback is not needed for most cases. The callback method is provided because ECID needs to send a request to Adobe's endpoint, then wait for the response with the generated ID. So the callback allows for any execution that needs to run after the ID has been retrieved. But like I said, most of the time when the ID is needed, it would have been generated and saved to a cookie already, since ECID is one of the first things that runs on the page.
2. Yes, but this depends on the user having a 3rd-party cookie from demdex.net. See https://experienceleague.adobe.com/docs/id-service/using/intro/id-request.html?lang=en