I have similar issues on Mac.
I often switch between various VPNs throughout the day. If I'm connected to a DB through SQL Developer, and close the VPN without disconnecting first, then later reconnect on that VPN... I usually need to force quit SQL Developer to get reconnected to the DB -- both the reconnect and disconnect options will take upwards of 10 minutes otherwise. It's frustrating.
Alas, SQLDeveloper has no "Force disconnect" functionality, though I really think it should. You can "work around" it by creating a copy of your connection with same login credentials but different name, logging in with that connection when necessary, then going to session report and killing your hanging session from there. Ugly, but sometimes much better than killing the SQLDev process and restarting the tool.