Hi! Thank you for the answer, but I ended up completely scrapping my above methods. Yes it worked but I used KinematicBody2D for drag and drop combined with listeners and Area2d to add and remove items from my window. This was too convoluted and brought about other bugs into the mix. Mixing in a collision system for drag and drop was definitely not the answer on my part.
I followed this answer to reimplement drag, drop, item addition/removal from a window:
https://godotengine.org/qa/45323/drag-&-drop-issue
I now use the get_drag_data(), can_drop_data() and drop_data() virtual methods with Panels and Control nodes. It works like a charm.
Update: I answered the issue the above user was having on https://godotengine.org/qa/45323/drag-&-drop-issue, because I had a similar problem if anyone wants to dive deeper into the Godot drag & drop functionality.