Grunt 1.6.1 async task handling with Node.js 18+
Goal Determine how to keep custom Grunt tasks functioning when running on Node.js 18+ while respecting the legacy this.async() contract. Constraints Grunt 1.6.1 core relies on the this.async() callback pattern; it does not natively accept Promise returns. Node.js 18+ emits unhandled rejection warnings for Promise-based code that is not awaited or caught, whi