for rclone copy I am not sure why you think that directories mtime is not preserved.... I have just tested it - all works for both onedrive and gdrive.
Could you then provide some evidence of this not working?
I did some additional tests, and I found that all subfolder timestamps were preserved except for those at the top directory level. In my case, the "archive" folder's mtime always reflects the upload time. I believe this is because the folder was originally created rather than copied. As a workaround, I now place the "archive" folder in a separate folder, say "upload", and then, after the upload, I move the "archive" folder to the root of the drive and delete the "upload" folder.
Is there a simpler solution? Also, for folders already on the server side, is there a way to use rclone to modify the mtime? Thank you!