I noticed that when using GANTT view, the duration column calculates specifically to number of days between star date and end date including the start and end dates. Some other options for calculating duration like the number of Mondays from the start date or number of business days (user specified what days count) between dates would be interesting ways to calculate duration. This would work well especially with my next suggestion below.
Having a lock ability where one of the 3 columns (Start Date, End Date, Duration) can have the value locked would create a nice dynamic. For example, if I know something will take 10 days and the start date changes, I can lock the duration and enter the new start date and the end date will get adjusted automatically similar to sliding the task in GANTT view. Another example would be locking the End Date as a set deadline and then adjusting the duration which automatically gives you the start date.
The last suggestion I have might be a bug but relates to this. When a row is created from a form or moved to a sheet from another, the GANTT column for duration does not auto-populate until the GANTT column start date or end date is edited. This ends up defeating the purpose of the GANTT view because the tasks do not appear in the view until an edit is made to either date.