Yea what you can do is make the link element display as a block, add “relative” position to the list item containing it, and then you can position the button element absolutely. The button’s positioning will need to be tailored to the menu item, but that should work pretty well.
As for the mobile menu update, check out this Javascript: https://gist.github.com/BenSibley/11865d2d6673541d9e8f
The idea is that the site waits until a touch-event is triggered which proves a touch-enabled device is being used. It then adds a “closed” class to all parent menu items. If a parent menu item with a the closed class is touched, it will remove the class and NOT visit the link. Since the closed class is only applied once a touch event is triggered, it won’t require desktop visitors to click parent menu item twice to visit it.
The last step will be to open/close the dropdown menu when the parent menu item is touched. You can fire the openPrimaryMenu function for that (Line 36 of /js/functions.js).