OmniFocus repeats use their repeat interval unit when calculating their next instance, and drop the smaller portions of the date/time. This is so that (for example) your average daily repeat doesn’t drift if you complete it at a different time of day.
The solution for the case where minutes are important was to create a repeat using an interval specified in minutes, but this currently isn’t possible using the UI in OmniFocus 3. We’ve got a bug report open on bringing that option back and I’ll add this example to it.
It also seems to me like even with a repeat interval in hours, we could take your original due time of 3:30 into account when calculating the next due time—I’ll file that for investigation as well.
One more thing: Even though the OmniFocus UI doesn’t support minutes as a repeat unit, you can paste in taskpaper text with a repeat rule defined that way and the rule will be respected, even though it might not appear correctly in the UI. In your case you’d want to create your item with
@repeat-rule(FREQ=MINUTELY;INTERVAL=360). More info on taskpaper can be found here in discourse, and there’s a reference document here: https://support.omnigroup.com/omnifocus-taskpaper-reference/.