Yeah 3 seconds is just an example, you'd have to set a much higher timeout. 10 minutes is fine. Or even 30 minutes if you want. Ideally that should be configurable too as an datastore option so the user gets to tweak that depending on the network. But it's okay if you don't want to implement it since this is not addressed in the guidelines.

Other than that, module looks good to me. You guys can land it if you'd like.