Can you try this and see what takes the longest?
I'm guessing it's the FT search. Maybe if it gets narrowed down before doing that it will help somehow.
declare @tbl1 table (id bigint primary key)
declare @tbl2 table (id bigint primary key)
declare @tbl3 table (id bigint primary key)
insert into @tbl1
SELECT AuditLogID
FROM AuditLog
WHERE (CreatedDate between '9/18/2012' and '9/21/2012')
AND (CustomerID = 2046 and PracticeID = 1)
--print time
insert into @tbl2 select auditlogid from
@tbl1 t inner join
auditlog a on a.auditlogid = t.id
where
CONTAINS(([ChangeSet], [EntityTypeText], [SubEntityTypeText], [UserName]), 'Eduvigis')
--print time
insert into @tbl3 select auditlogid from auditlog where
@tbl1 t inner join
auditlog a on a.auditlogid = t.id
where
CONTAINS(([ChangeSet], [EntityTypeText], [SubEntityTypeText], [UserName]), 'Phillips')
--print time
SELECT AuditLogID, Application, AuditActionTypeID, AuditTypeID, ChangeSet, EntityTypeID, EntityTypeText, SubEntityTypeID, SubEntityTypeText, CustomerID, PracticeID, UserID, UserName, CreatedDate
from @tbl2 t inner join
AuditLog a on a.auditlogid = t.id
ORDER BY CreatedDate desc
--print time
SELECT AuditLogID, Application, AuditActionTypeID, AuditTypeID, ChangeSet, EntityTypeID, EntityTypeText, SubEntityTypeID, SubEntityTypeText, CustomerID, PracticeID, UserID, UserName, CreatedDate
from @tbl3 t inner join
AuditLog a on a.auditlogid = t.id
ORDER BY CreatedDate desc
--print time