Well I didn't say run them manually...
If you want server 4 to be able to run server 3's jobs when server 3 fails, then you need to have those jobs on server 4. Since MSDB is a system database and written to by SQL Agent, that can't be via mirroring, log shipping or availability groups. Perhaps replication, I can't recall offhand whether MSDB can be published.
Then you either need to ensure that SQL Agent on server 4 is stopped and manually started when server 3 goes down, bit of a pain there, or have something in the jobs, probably as the first step, that checks what server they're on and what servers are active and online to see if they should run. So jobs on server 4 check to see what server they're running on, see server 4, then check whether server 3 is available, if it's not run.
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)SQL In The Wild
: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass