Is there a way to test for a program that has gone onto message wait on an AS400 system?

My VB program is currently hanging because the AS400 program is expecting a reponse due to a function check etc. I've tried a couple of different methods...

Method 1 - ADODB.Connection
Program just hangs at con400.Execute...
Code:
Private Function ExecuteAS400Cmd(ByRef con400 As ADODB.Connection, strCmd As String) As Boolean

    On Error GoTo AS400_Error

    con400.Execute "CALL QSYS.QCMDEXC('" & strCmd & "', " & Format(Len(strCmd), "0000000000") & ".00000)"
    ExecuteAS400Cmd = True
    
AS400_Resume:
    Exit Function
    
AS400_Error:
    Dim lErrNo      As Long
    Dim sErrMSG     As String
    Dim sErrSource  As String
    With Err
        lErrNo = .Number
        sErrMSG = .Description
        sErrSource = .Source
    End With
    Err.Raise lErrNo, sErrMSG, sErrSource
    Resume AS400_Resume

End Function
Method 2 - IBM Client Access Express Activex Objects
Program hangs at objAS400Command.Run
Code:
Private Function IBMExecuteCommand(SystemName As String, CommandString As String) As Boolean

    Dim objAS400Command     As cwbx.Command
    
'// Create new command object
    Set objAS400Command = New cwbx.Command
    
'// Create new as400 system object
    Set objAS400Command.System = New cwbx.AS400System
    
'// Define the system and sign on
    With objAS400Command
        .System.Define SystemName
        .System.UserID = "MYUSER"
        .System.Password = "MYPASSWORD"
        .System.Signon
    End With
    
'// Run the command
    objAS400Command.Run CommandString

    If objAS400Command.Errors.Count > 0 Then
    
    Else
        IBMExecuteCommand = True
    End If

End Function
Does anyone have any idea how to execute the command, then test for the response, handling any possible MSGW status or other errors on the AS400 system?

Thanks