I think this way is still too complicated.
Another "problem" is, that the time when the moonphase will be reached is dependent on the location.
Hence you will need to create a dedicated moonphase node and configuration for each desired location.
That said, I think the "inject enhanced" node would work best. Use it to create updates to the current moonphase (based on location) and then feed it through two switch nodes, narrowing down the month-range and day-range required.
Like this:
[{"id":"41eb733e.08c3dc","type":"tab","label":"Flow 4","disabled":false,"info":""},{"id":"22eca0d1.39f5d","type":"time-inject","z":"41eb733e.08c3dc","name":"update moonphase","nameInt":"\"Mondphase\"","positionConfig":"8c7609ce.dd5798","props":[{"p":"","pt":"msgPayload","v":"","vt":"pdmPhase","o":"","oT":"none","oM":"60000","f":0,"fS":0,"fT":"Millisekunden UNIX-Zeit","fI":"0","next":true,"days":""}],"injectTypeSelect":"none","intervalCount":1,"intervalCountType":"num","intervalCountMultiplier":60000,"time":"","timeType":"entered","offset":0,"offsetType":"none","offsetMultiplier":60000,"timeEnd":"","timeEndType":"entered","timeEndOffset":0,"timeEndOffsetType":"none","timeEndOffsetMultiplier":60000,"timeDays":"*","timeOnlyOddDays":false,"timeOnlyEvenDays":false,"timeMonths":"*","timedatestart":"","timedateend":"","property":"","propertyType":"none","propertyCompare":"true","propertyThreshold":"","propertyThresholdType":"num","timeAlt":"","timeAltType":"entered","timeAltDays":"*","timeAltOnlyOddDays":false,"timeAltOnlyEvenDays":false,"timeAltMonths":"*","timeAltOffset":0,"timeAltOffsetType":"none","timeAltOffsetMultiplier":60000,"once":false,"onceDelay":0.1,"recalcTime":2,"x":190,"y":100,"wires":[["fcc44e2e.be97e","517c6f2.812ee9"]]},{"id":"fcc44e2e.be97e","type":"debug","z":"41eb733e.08c3dc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":390,"y":40,"wires":[]},{"id":"463753dc.03a8dc","type":"switch","z":"41eb733e.08c3dc","name":"moonphases","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"waxingCrescentMoon","vt":"str"}],"checkall":"false","repair":false,"outputs":1,"x":590,"y":100,"wires":[["e9978ac9.40c918","29f23f29.37d83"]]},{"id":"e9978ac9.40c918","type":"debug","z":"41eb733e.08c3dc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":910,"y":140,"wires":[]},{"id":"517c6f2.812ee9","type":"change","z":"41eb733e.08c3dc","name":"Month and Day","rules":[{"t":"set","p":"day","pt":"msg","to":"$fromMillis($._ts,'[D01]')","tot":"jsonata"},{"t":"set","p":"month","pt":"msg","to":"$fromMillis($._ts,'[M01]')","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":100,"wires":[["463753dc.03a8dc"]]},{"id":"29f23f29.37d83","type":"switch","z":"41eb733e.08c3dc","name":"months (ranges)","property":"month","propertyType":"msg","rules":[{"t":"eq","v":"01","vt":"str"},{"t":"eq","v":"02","vt":"str"},{"t":"eq","v":"03","vt":"str"},{"t":"eq","v":"04","vt":"str"},{"t":"eq","v":"05","vt":"str"},{"t":"eq","v":"06","vt":"str"},{"t":"eq","v":"07","vt":"str"},{"t":"eq","v":"08","vt":"str"},{"t":"eq","v":"09","vt":"str"},{"t":"eq","v":"10","vt":"str"},{"t":"eq","v":"11","vt":"str"},{"t":"eq","v":"12","vt":"str"}],"checkall":"true","repair":false,"outputs":12,"x":780,"y":300,"wires":[["ce5ef60f.34b018"],[],[],[],[],[],[],[],[],[],[],[]]},{"id":"ce5ef60f.34b018","type":"switch","z":"41eb733e.08c3dc","name":"day range","property":"day","propertyType":"msg","rules":[{"t":"btwn","v":"22","vt":"num","v2":"24","v2t":"num"},{"t":"eq","v":"19","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":940,"y":229,"wires":[["77547727.aaba38"],["77547727.aaba38"]]},{"id":"77547727.aaba38","type":"debug","z":"41eb733e.08c3dc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1093,"y":228,"wires":[]},{"id":"8c7609ce.dd5798","type":"position-config","name":"DACH-1","isValide":"true","longitude":"0","latitude":"0","angleType":"deg","timeZoneOffset":"99","timeZoneDST":"0","stateTimeFormat":"3","stateDateFormat":"12"}]
...still not perfect for intersection in months/days but as an example, U might get the picture.
Maybe create a JSONATA timestamp query for each desired date-range in the first switch and you*re done