Comprender la tarea Async paralela en Android

En mi aplicación, estoy usando tareas asíncronas en muchos lugares, recientemente me encuentro con un problema en el que no se llama a doInBackground de la tarea asíncrona a continuación, esto sucede cuando ejecuto la tarea asíncrona a continuación por tercera vez (otras tareas asíncronas también se están ejecutando )

protected class StatusTask extends AsyncTask<Void, Void, Void> {
    private final BluetoothDevice device;

    public StatusTask(BluetoothDevice device) {
        this.device = device;
    }

    @Override
    protected Void doInBackground(Void... voids) {
        while (true) {
            if (someCondition) {
                Log.D(TAG,"hi hello")
                break;
            }
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                //e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        tTask=null;
    }

    @Override
    protected void onCancelled() {
        super.onCancelled();
        System.out.println("onCancelled " + this.isCancelled());
    }

    @Override
    protected void onCancelled(Void aVoid) {
        super.onCancelled(aVoid);
        System.out.println("onCancelled result " + this.isCancelled());
    }
}

Estoy ejecutando la tarea anterior como,

 StatusTask  tTask = new StatusTask(device);   
 tTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

Estoy ejecutando la versión de Android 4.4.3.

¿Cómo puedo saber cuántas tareas de sincronización se están ejecutando actualmente en mi aplicación? Bcz supongo que el conteo CORE_POOL_SIZE podría estar causando el problema.

O si se produce un punto muerto o cualquier otra situación y se bloquea la ejecución de una nueva tarea Async, ¿hay alguna forma en Android Studio para identificar y eliminar las otras tareas Async que pueden no ser útiles?

Si uso CustomThreadPoolExecutor como disconnectTask.executeOnExecutor (mCustomThreadPoolExecutor); con más CorePoolSize funciona bien, pero no se llama a doInBackground () de la siguiente tarea Async que usa AsyncTask.THREAD_POOL_EXECUTOR.

Respuestas a la pregunta(2)

Su respuesta a la pregunta