По предложению slhck, я создал автономный AppleScript, который выполняет эту задачу, а затем сохранил его в утилите редактора AppleScript как .app. Это именно то, что я хочу.
Ниже найдите скрипт. Он проверяет, запущен ли SafariForWebKitDevelopment, и указывает терминалу запустить скрипт для его запуска в случае необходимости. (Это автоматически создает новое окно, и я установил настройки нового окна терминала по умолчанию, чтобы закрыть окно при выходе из процесса.) Затем он устанавливает этот процесс в верхнее окно. 
Я продолжил дикую погоню, пытаясь выяснить, как справиться со случаем обычного Safari, работающего одновременно с SafariForWebKitDevelopment, и, наконец, пришел к решению, которое вы видите в коде, работающем с процессами, а не с приложениями.
tell application "System Events"
    -- Only launch development Safari if it isn't already running
    if not (exists process "SafariForWebKitDevelopment") then
        tell application "Terminal"
            do script "run-safari; exit"
            activate
        end tell
    end if
    -- Max number of iterations of checking for process before
    -- we give up and exit the script (guards against errors in
    -- launching SafariForWebKitDevelopment, where the process
    -- would never exist, and this would be an infinite loop)
    set num_checks to 100
    -- Wait until dev Safari has launched
    repeat until (exists process "SafariForWebKitDevelopment")
        delay 0.1
        set num_checks to num_checks - 1
        if num_checks < 0 then
            return
        end if
    end repeat
    -- Set dev Safari to have focus
    -- 'tell application "Safari" to activate' doesn't work because AppleScript 
    -- has no way of discerning between multiple processes from the same .app
    -- bundle, so we can't be sure if we're talking to
    -- SafariForWebKitDevelopment, or an already-running normal Safari
    set frontmost of (process "SafariForWebKitDevelopment") to true
end tell