IssuePlacementWorker: schedule rebalancing on timeout

We are seeing a number of issue-placement jobs failing due to query-timeout. This can happen for a number of reasons, but one that we know is important is unbalanced issue positions (large clumps, especially at the end of the range). We may wish to schedule rebalancing if the queries timeout, and it would be best to do this only after exhausting any retries

https://sentry.gitlab.net/gitlab/gitlabcom/issues/1811184/?referrer=gitlab_plugin

PG::QueryCanceled: ERROR:  canceling statement due to statement timeout

  active_record/connection_adapters/postgresql_adapter.rb:675:in `exec_params'
    @connection.exec_params(sql, type_casted_binds)
  active_record/connection_adapters/postgresql_adapter.rb:675:in `block (2 levels) in exec_no_cache'
    @connection.exec_params(sql, type_casted_binds)
  active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    yield
  active_support/concurrency/share_lock.rb:187:in `yield_shares'
    yield
  active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    @lock.yield_shares(compatible: [:load]) do
...
(99 additional frame(s) were not displayed)

ActiveRecord::QueryCanceled: PG::QueryCanceled: ERROR:  canceling statement due to statement timeout

PG::QueryCanceled: ERROR:  canceling statement due to statement timeout