Thanks for the regular vs. system queue explanation.
Regarding swiftlet vs. JAC; since I am enhancing an existing application heavily used in a production environment since SwiftMQ 4, for which I had no involvement in design of; and no mandate to re-architect as a separate application outside SwiftMQ I'm not sure it's worth discussing that route!
Anyway; I was deliberately blocking the startup of my swiftlet to ensure queues are created before startup, but using a separate thread to make the CLI connection does appear to have stopped me from being able to replicate the timeout issue.
I also noticed that my other external CLI.bat connections to the router got the same timeouts occasionally too while trying to reconnect; so I'm guessing there may be some issue with the CLI implementation if it tries to connect at a particular point in the router's startup?
com.swiftmq.tools.requestreply.TimeoutException: Request timeout occured (60000) ms
at com.swiftmq.admin.mgmt.EndpointFactory$EndpointCreator.request(Unknown Source)
at com.swiftmq.admin.mgmt.EndpointFactory$EndpointCreator.create(Unknown Source)
at com.swiftmq.admin.mgmt.EndpointFactory.createEndpoint(Unknown Source)
at com.swiftmq.admin.cli.CLI.createEndpoint(Unknown Source)
at com.swiftmq.admin.cli.CLI.init(Unknown Source)
at com.swiftmq.admin.cli.CLI.reconnected(Unknown Source)
at com.swiftmq.jms.v750.ConnectionImpl$1.run(Unknown Source)
If it helps with any investigation you might want to do, the thread dump is
here; you can see the main startup thread is waiting in QueueReceiverImpl, but not going anywhere.