If the replication is turned off and the query still takes longer on the warm standby then I guess the issue is not to do with replication.
Have you tried updating the stats on the warm standby? I'm not sure whether these are passed across via replication or not.
Are the indexes all in place on the warm standby?
It may well be worth looking at the query plan on the live and warm standby and see if they are the same, if they are different then it should point you more towards an answer.
Code:
set showplan on
set noexec on
... your long query goes here
set noexec off
set showplan off
Mike