The easiest way I can think of would probably be adjusting editor habits to always include valid times in the date entries for both tasks/meetings. Task end dates could be EOD (unless a hard deadline is a meeting or something else).
You can enable time on the date field when configuring the field settings:

And then editors can adjust the time by double clicking on the time value in the cell:

Re: the Gantt view, milestones if enabled work by only supplying an end date. So this makes me think you might use the same end-date-only approach for meetings (depending on if you're syncing to an external calendar like outlook/google calendar, this might not be better but I haven't tested this).
Personally, I probably would only include BAU stage gate meetings as "tasks" that are part of the standard process for projects in Airtable. Like if a review meeting or approval meeting was always part of the process. If I wanted a record of all meetings that were held to support a task, I would create a separate table to link to tasks or just keep a long-text Notes/Action Items field updated after each meeting.
The idea of adjusting editor habits is helpful. Sometimes one can get hung up in how things are "supposed" to be - so just changing a mindset opens up new opportunity. For us that would mean tasks should have a beginning of day time (e.g., 8am) tied to the start date, and an end of day time tied to the end/due date. We got the Create Records for Multiple Templates working properly (thanks to your assistance!) - and so for tasks we can set a default day and time in our templates which we can then adjust as we plan projects (but the times would be already set - which would be helpful!).
We do sync to google calendar to automate sending calendar invites with google meet links so having meeting day and time details is critical for us.