No, deploying DTM in the way you have indicated is unsupported as it can lead to unexpected results. The duplicate calls is just one of those results. The DOM Ready calls _satellite.pageBottom() if the page bottom hasn't already been fired.
I'm not aware of a way to change that without heavily modifying the DTM library. If you need a more custom approach to what DTM offers, I'd suggest looking into Launch. Launch was redesigned to accommodate more advanced implementations and even allows you to deploy it asynchronously. You can learn more about Launch on the Launch, by Adobe community.
You don't need to modify "heavily" the DTM library but just deactivate the automatic pageBottom putting the following line in your page:
_satellite.pageBottomFired = true;
DTM will consider that the pageBottom is already executed and will not launch fire the safeguard automatic call. So, you will able to fire it programmatically (as example, in a callback, when your digital data layer is ready for it).