Как сделать задержку выполнения в css*?
Задержку можно сделать с помощью transition-delay
или вместо transition использовать animate и @keyframes
Попробуйте вот так#menu ul li:hover > ul {
  left: 287px;
}

#menu ul li > ul {
  position: absolute;
  background-color: #2E2E2E;
  top: 0;
  left: 34px;
  text-align: left;
  padding-left: 4px;
  min-width: 200px;
  z-index: -1;
  margin-top: 37px;
  height: 368px;
  -webkit-transition: left .5s .2s ease-in;
  -moz-transition: left .5s .2s ease-in;
  -ms-transition: left .5s .2s ease-in;
  transition: left .5s .2sease-in;
}