@john-oliva sorry for the delayed answer first of all, I got no notification of this thread unfortunately. Regarding the signed/unsigned int, you hit unfortunately a bug we are working on it right now in the development version (https://github.com/mysensors/NodeManager/pull/391); whether you use setReportIntervalMinutes() or setReportIntervalDays() in v1.7, still the underlying variable which stores the value is a signed int hence your input would not fit, sorry for that.
Let me also clarify the difference between sensor.setReportIntervalMinutes() and node.setReportIntervalMinutes(). The latter would act as a sort of default value: if no report interval has been set by the user, this default value will be used. This is why it would not apply when already called to the sensor instance.
As for the issue with reporting and external interrupt, if NodeManager is not time-aware it thinks when the interrupt occurred the entire sleep timeframe has elapsed and the timer is updated accordingly, even if only one second has passed by. Unfortunately I think there is no alternative, with or without NodeManager (MySensors' sleep() doesn't know and hence return the time actually slept). Only with a RTC attached NodeManager can know how much time has really elapsed and then the calculations are correct and put the node to sleep for the remainder timeframe.
If the issue persists, would be great if you can share NodeManager's logs here so ti dig a bit more into it. Thanks!