First off, you should return .F. instead of .T. if there is a duplicate record. That is because all methods (and functions) return .T. at the end of them by default, unless you specify otherwise. What you need to do in your local button code is then check for the returned value from the DODEFAULT() call such as:
IF NOT DODEFAULT()
* Default code returned .F. which means that this is a duplicate recordELSE * Add local code here to process after DODEFAULT() returned .T.ENDIF
This way you can 'trap' what happened in the default code and act accordingly.