Ok, avaliando todos os parâmetros do pool de conexões, parece validationQueryTimeOut estava causando todo esse problema. Depois de remover esse parâmetro, tudo está normal. Agora minhas propriedades de pool de conexões de trabalho são assim
properties {
initialSize=5
maxActive=50
minIdle=5
maxIdle=25
maxWait = 10000
maxAge = 10 * 60000
timeBetweenEvictionRunsMillis=5000
minEvictableIdleTimeMillis=60000
validationQuery="SELECT 1"
validationInterval=15000
testWhileIdle=true
testOnBorrow=true
testOnReturn=false
jdbcInterceptors = "ConnectionState"
defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED
}