When loading 'menu_tools.py' multiple times, the '_toggle_button_menu_ids' dictionary was getting destroyed each time. More importantly, this dictionary wasn't even needed, so it's simply been removed.
Trying to call 'qtm.gui.add_command' with the same name twice is flat out not possible. However, calling the helper function 'add_command' using the same name handles it gracefully, but it wasn't completely correct. More specifically, in our case the secondary call to 'add_command' using an existing name wasn't updating the actual function that the command was supposed to call.