It sounds like you know what your doing so I will jump right to it.
Are you sure you are using the WAN IP address and not the local IP?
When you say you tried other ports, did you change the port on the device as well? As a suggestion, you can use port triggering instead of forwarding to change the port (router translates one port on the WAN IP to the device).
If you open your web browser, can you communicate with the OpenSprinkler directly? Example: http://wan_ip
Doing some research based on your comment it appears you are correct about Cox blocking ports. http://ww2.cox.com/residential/support/internet/article.cox?articleId=cacf82f0-6407-11df-ccef-000000000000
I would just use port triggering if your router offers it. If not, change the port on the device and change the port forwarding to 5000 for example. In the mobile app though you will have to specify the port by adding a “:5000” (without the quotes).