Well, it depends on how much a stickler for detail you are: If you know your date+90 workdays will not land on a holiday. and you aren’t that concerned there might be 89- or 88-workday interval, instead of a definite 90 day one, you can forego the string of holidays. (You can also dispense with any holidays that fall on a weekend, obviously.) As you note, they need to be in ISO date standard, which is 4-digit year, 2-digit month, and 2-digit day, with hyphens separating the year, month, and day. (Note that when I say ‘2-digit month,’ I mean just that: single-digit months and days need to be left-padded with a zero.)
As far as removing the time field from your calculated date/time field, right-click on the field header, select ‘Change field configuration,’ selecting the ‘formatting’ tab, and toggle off ‘Include a time field.’ This would also be a good time to check the status of your GMT toggles: Every date field (including calculated dates, as well as dates accessed from a link record using a rollup or lookup field) has a toggle as to whether or not to use GMT for all collaborators. That doesn’t mean you enter your local time in the field, and the field normalizes it to GMT; instead,. it means that should you enter a time value in a date field, Airtable will assume you’re specifying it in GMT.
None of this would matter, except should you have one date field set to use GMT and another not to, you’ll start seeing odd discrepancies. Usually it manifests itself as a day count incrementing too quickly. It doesn’t matter that much which way you have your fields set; what’s important is they all be set the same way.