What could be the simplest way without using the query to check the health of the connection
Why do you reject this functionality? It does exactly what you need.
Just take care that you use a cheap query that returns as least on row, and the pool will do what you want.
I wonder why you don't want to use this mechanism, and whet you suggest as a more appropriate approach for your application.